Python Forum
how to pass arguments between pythons scripts?
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
how to pass arguments between pythons scripts?
Hello, everybody,
I'm new in python and i'm trying to pass arguments between different scripts but they only update one way:
i'm calling the first script in maya with a shelf in maya like this:

import sys
import UiMayaTest as SBIRP
myPM = SBIRP.createUI()
this called script '' is a simple window with an intField entry and a button:

import sys
import maya.cmds as cmds
from functools import partial

def buttonPressed(episode, *args):
    passValue(episode, *args)
    print '============== buttonPressed ================'
    print 'EpisodeName ', EpisodeName

    Var = ''
    import UiMayaTestFunction
    Var = UiMayaTestFunction.FindVarFunc(EpisodeName,Var)
    print 'Var : ',Var

def createUI(): 
    myWindow = "SomeWindow"
    if cmds.window(myWindow,ex=True):
    cmds.columnLayout( adjustableColumn=True )
    cmds.text( label='Episode:  ', align='left' )
    episode = cmds.intField( "Episode", minValue = 100, maxValue = 1000, value =100)
    cmds.button(l="Open Last LIT scene", w=150, h=30, command=partial(buttonPressed,episode))

def passValue(episode, *args):
    global EpisodeName
    EpisodeName = `cmds.intField( episode, query = True, value = True)

and the script called by it is called '' and just return a variable called Var:

def FindVarFunc(EpisodeName, Var):
    print '============== FindVarFunc ================'
    print 'EpisodeName:' , EpisodeName 
    Var = 'Hello world'
    print 'Var: ',Var
    return Var
the variable 'EpisodeName' from UiMayaTest to UiMayaTestFunction is well updated each time i press the button,
but if i change the variable Var = 'Hello world' in UiMayaTestFunction by for example Var = 'Gnnn', it doesn't update it,
i've got always the same print or 'Var'... 'Hello world'
Thanks by advance for any help...
I certainly hope it always prints 'Var: Hello world' since setting Var = 'Hello world' is the last thing you do before printing Var.

This has nothing to do with functions being in different modules.  It is just a logic error that you have to fix.  This code exhibits the same behavior and the function and function call are in the same module.
def set_string_func(string):
    print('Received', string)
    string = 'yellow'  ## Why doing this if passed string?
    print('Returning', string)  ## string is always 'yellow' after assignment
    return string

string = set_string_func('mellow')
The output is:
Quote:Received mellow
Returning yellow
electricDesire likes this post
sorry for the answer very late and thanks for the answer deanhystad, it's ok now!

Possibly Related Threads…
Thread Author Replies Views Last Post
  Possible to dynamically pass arguments to a function? grimm1111 2 389 Feb-21-2021, 05:57 AM
Last Post: deanhystad
  Why Pass Functions as arguments? muzikman 14 1,226 Jan-18-2021, 12:08 PM
Last Post: Serafim
  Pass by object reference when does it behave like pass by value or reference? mczarnek 2 658 Sep-07-2020, 08:02 AM
Last Post: perfringo
  How to pass multiple arguments into function Mekala 4 822 Jul-11-2020, 07:03 AM
Last Post: Mekala
  Pass Arguments to Function phillyfa 2 661 Mar-27-2020, 12:05 PM
Last Post: phillyfa
  Pass by reference vs Pass by value leodavinci1990 1 737 Nov-20-2019, 02:05 AM
Last Post: jefsummers
  merging lists, dedup and keeping order, in older pythons Skaperen 3 1,264 Oct-19-2018, 01:30 AM
Last Post: ODIS
  How to pass arguments to popen? zBernie 3 7,091 Jul-09-2018, 01:26 AM
Last Post: zBernie
  # of Positional arguments to pass for creating an object? burvil 2 2,004 Sep-09-2017, 06:43 PM
Last Post: burvil
  Check Python version from inside script? Run Pythons script in v2 compatibility mode? pstein 2 7,739 Jul-07-2017, 08:59 AM
Last Post: snippsat

Forum Jump:

User Panel Messages

Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020