我正在为Maya编写一个简单的工具,我尝试在另一个中调用基本函数。但我总是得到:global name "baseShape" is not defined
。
以下是我的代码片段,其中包含错误:
class correctiveShaper():
def __init__(self):
#class variable
self.app = {}
#call on the build UI
self.buildUI()
def buildUI(self, *args):
cmds.separator(h=30)
cmds.button(label="Create Shape", w=295, h=30, al="right", c= baseShape)
def baseShape (self, *args) :
self.app["sel"]=cmds.ls(sl=True)[0]
Python不允许我在c = baseShape
中执行def buildUI
命令,我不知道为什么。
答案 0 :(得分:5)
您需要使用self
来引用实例上的方法:
cmds.button(label="Create Shape", w=295, h=30, al="right", c=self.baseShape)
方法不是全局。通过使用self.baseShape
,您将获得绑定方法,这是一个知道在调用时如何将实例传递给方法的对象。