如何解决如何在MAYA中的pythons脚本之间传递参数?
我是python的新手,我试图在不同脚本之间传递参数,但它们仅更新一种方式: 我正在用这样的架子在玛雅中调用第一个脚本:
try:
myPM.close()
except:pass
import sys
sys.path.append("C:/Users/manue/Desktop/test")
import UiMayaTest as SBIRP
reload(SBIRP)
myPM = SBIRP.createUI()
这个称为脚本'UiMayaTest.py'的简单窗口带有intField条目和一个按钮:
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)`
并且其调用的脚本称为'UiMayaTestFunction.py',只是返回一个名为Var的变量:
def FindVarFunc(EpisodeName,Var):
print '============== FindVarFunc ================'
print 'EpisodeName:',EpisodeName
Var = 'Hello world'
print 'Var: ',Var
return Var
每次按下按钮,从UiMayaTest到UiMayaTestFunction的变量'EpisodeName'都会得到很好的更新, 但是如果我在UiMayaTestFunction中更改变量'Var',它不会更新它,则我将始终获得相同的打印或'Var'... 在此先感谢您的帮助...
解决方法
好吧。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。您期望Var变量得到什么结果? 让我们看看..如果按下按钮,则将调用buttonPressed()函数。变量'Var'在那里用空字符串''初始化。然后,使用参数Var调用FindVarFunc(),它仍然是一个空字符串。在FindVarFunc()中,变量'Var'被打印并返回,仍然是....你猜对了:一个空字符串。最后,将函数的结果分配给变量“ Var”,结果是...一个空字符串被打印出来。可以为“ Var”分配其他内容(空字符串)以查看其效果是否更好。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。