gpt4 book ai didi

python - 无法将全局变量传递给 Python 模块内的多个函数

转载 作者:太空宇宙 更新时间:2023-11-03 19:15:45 26 4
gpt4 key购买 nike

在检查了所有可能的资源后,我得出结论,我需要紧急帮助才能将全局变量从函数传递到 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);

最佳答案

试试这个代码

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 代码,因此无需添加 ;在你的代码中:)

关于python - 无法将全局变量传递给 Python 模块内的多个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11366538/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com