how to pass arguments between pythons scripts? - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: how to pass arguments between pythons scripts? (/thread-30201.html) |
how to pass arguments between pythons scripts? - electricDesire - Oct-11-2020 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: try: myPM.close() except:pass import sys sys.path.append("C:/Users/manue/Desktop/test") import UiMayaTest as SBIRP reload(SBIRP) myPM = SBIRP.createUI()this called script 'UiMayaTest.py' 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.deleteUI(myWindow) cmds.window(myWindow) 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)) cmds.setParent("..") cmds.showWindow() def passValue(episode, *args): global EpisodeName EpisodeName = `cmds.intField( episode, query = True, value = True)` and the script called by it is called 'UiMayaTestFunction.py' and just return a variable called Var: def FindVarFunc(EpisodeName, Var): print '============== FindVarFunc ================' print 'EpisodeName:' , EpisodeName Var = 'Hello world' print 'Var: ',Var return Varthe 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... RE: how to pass arguments between pythons scripts? - deanhystad - Oct-12-2020 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 RE: how to pass arguments between pythons scripts? - electricDesire - Oct-19-2020 sorry for the answer very late and thanks for the answer deanhystad, it's ok now! |