在浏览了所有可能的资源后,我得出结论,我需要一个紧急的帮助,将函数中的全局变量传递给Python中的其他模块。
其实我在Autodesk Maya2010上写了一个小UI,下面是关于这个问题的简要介绍。
在下面的代码中,我有两个模块级全局变量,我在函数内为它们赋值。现在,如果我直接传递这些变量(即不转换函数调用并将其指定为字符串),那么代码工作正常,但是由于按钮函数的命令标志 只允许字符串或函数名称,因此我坚持使用这种方式调用函数。
我得到的结果是:
temp_var =无
a_Window =无
我不知道。
当我使用字符串值作为函数调用时,是否可以指出究竟发生了什么?
**The sample code**:
import maya.cmds;
temp_var=None;
a_Window=None;
def im_PrimaryFunc():
imSecondary_func();
def imSecondary_func():
global a_Window;
global temp_var;
a_Window=maya.cmds.window(title="Something");
a_layout=maya.cmds.columnLayout(adj=1,rs=10);
temp_var=maya.cmds.createNode("polySphere");
func_call="a_calledFunc(a_Window,temp_var)";
maya.cmds.button(label="call_aFunc",align="center",command=func_call);
maya.cmds.showWindow(a_Window);
def a_calledFunc(arg00,arg01):
print(arg00);
print(arg01);
答案 0 :(得分:1)
试试此代码
import maya.cmds
from functools import partial
temp_var=None
a_Window=None
def im_PrimaryFunc():
imSecondary_func()
def imSecondary_func():
global a_Window
global temp_var
a_Window=maya.cmds.window(title="Something")
a_layout=maya.cmds.columnLayout(adj=1,rs=10)
temp_var=maya.cmds.createNode("polySphere")
maya.cmds.button(label="call_aFunc",align="center",command = partial(a_calledFunc,temp_var, a_Window))
maya.cmds.showWindow(a_Window)
def a_calledFunc(arg00,arg01, part):
print(arg00)
print(arg01)
im_PrimaryFunc()
请记住,您正在编写python代码,因此无需添加;在你的代码中:)