“全局名称未定义” - 在maya python中

时间:2015-07-20 11:16:38

标签: python maya

我正在为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命令,我不知道为什么。

1 个答案:

答案 0 :(得分:5)

您需要使用self来引用实例上的方法:

cmds.button(label="Create Shape", w=295, h=30, al="right", c=self.baseShape)

方法不是全局。通过使用self.baseShape,您将获得绑定方法,这是一个知道在调用时如何将实例传递给方法的对象。