gpt4 book ai didi

python - 动态创建变量名

转载 作者:太空宇宙 更新时间:2023-11-04 10:57:12 24 4
gpt4 key购买 nike

我有这段代码来创建一个界面和一些按钮(maya 中的 python)

class mrShadowMapChangerUI:
def __init__(self):

smAttrs = ['shadowMap','smapResolution','smapSamples','smapSoftness','smapBias']
smNiceAttrs = ['Active','Resolution','Samples','Softness','Bias']
attrs = zip(smAttrs,smNiceAttrs)

self.form = mc.columnLayout()

self.smapResolutionField = mc.textFieldButtonGrp( label=attrs[1][1], text=int(defaultLightValues[1]), bc=Callback(self.setSmValue, attrs[1][0]))
self.smapSamplesField = mc.textFieldButtonGrp( label=attrs[2][1], text=int(defaultLightValues[2]), bc=Callback(self.setSmValue, attrs[2][0]))
self.smapSoftnessField = mc.textFieldButtonGrp( label=attrs[3][1], text=('%.3f' % defaultLightValues[3]), bc=Callback(self.setSmValue, attrs[3][0]))
self.smapBiasField = mc.textFieldButtonGrp( label=attrs[4][1], text=('%.3f' % defaultLightValues[4]), bc=Callback(self.setSmValue, attrs[4][0]))

我想把它变成这样的东西来自动创建按钮并知道它们的名字(这样我以后可以查询它们)

class mrShadowMapChangerUI:
def __init__(self):

smAttrs = ['shadowMap','smapResolution','smapSamples','smapSoftness','smapBias']
smNiceAttrs = ['Active','Resolution','Samples','Softness','Bias']
attrs = zip(smAttrs,smNiceAttrs)

self.form = mc.columnLayout()
for attr in attrs:
self.('%s' % attr[0]) = mc.textFieldButtonGrp( label=attr[1], text=int(defaultLightValues[1]), bc=Callback(self.setSmValue, attr[0]))

mc.showWindow(self.window)

我真的很难理解所有这些“ self ”。工作流程,所以我可能遗漏了一些基本的东西,但到目前为止我尝试过的所有方法都没有奏效:S

谢谢!

最佳答案

这只是语法问题。语法中指定的属性必须是标识符,如果您想要生成的属性,您需要使用 getattrsetattr(或 delattr):

for attr, nice in zip(attrs, niceAttrs):
setattr(self, attr, value)

value 替换为您想要的值。这实际上与 self 无关:self 只是另一个函数参数,其行为与任何其他变量一样。

关于python - 动态创建变量名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8831270/

24 4 0
文章推荐: javascript - 在 div 中添加嵌套的 if else 语句
文章推荐: c - 简单的 fork 和管道
文章推荐: html - 为带有背景图像的