在为 Maya 编写 Python 脚本时使用 类

Using Classes when Python Scripting for Maya

我正在研究 Adrian Herbez 的 Maya Programming with Python Cookbook,但在创建 class 的示例(第 31 页)时遇到了问题生成用于在 Maya 中制作简单球体的用户界面。当我重现代码和 运行 它加载的脚本时,但在 Maya 中没有任何反应。我之前能够在不使用 class 方法的情况下创建用户界面,所以我想知道 class 代码是否有问题。我对 classes 的理解有点不稳定,但我找不到它有什么问题。我正在使用 Atom 并使用调用脚本 import(makeSpheres)reload(makeSpheres).

代码如下:

import maya.cmds as cmds

class SpheresClass:
    def __init__(self):
        self.win = cmds.window(title="Make Spheres",widthHeight=(300,200))
        cmds.columnLayout()
        self.numSpheres = cmds.intField(minValue=1)
        cmds.button(label="Make some spheres", command=self.makeSpheres)
        cmds.showWindow(self.win)

    def makeSpheres(self, *args):
        number = cmds.intField(self.numSpheres,query=True,value=True)
        for i in range(0,number):
            cmds.polySphere()
            cmds.move(i*2.2,0,0)

        SpheresClass()

在 Atom 中,self.winself.numSpheresself.makeSpheres 以红色突出显示,但 linter 没有任何错误消息。

原来我是在 makeSpheres 函数中调用 SpheresClass