Python继承
我不了解任何关于如何使继承工作的在线文档 我这里有:Python继承,python,inheritance,Python,Inheritance,我不了解任何关于如何使继承工作的在线文档 我这里有: import maya.cmds as cmds class RigLegs(): def __init__(self, *args): self.rigLegs() def rigLegs(self): self.items["side"] = "left" self.lIK = cmds.duplicate(self.lJoints["hip"], n = self.g
import maya.cmds as cmds
class RigLegs():
def __init__(self, *args):
self.rigLegs()
def rigLegs(self):
self.items["side"] = "left"
self.lIK = cmds.duplicate(self.lJoints["hip"], n = self.getName("hip_IK"))
for i in self.lIK:
newName = i[0].replace("_JNT", "_IK")
cmds.rename(i, newName)
但是它抱怨没有self.items——我必须从另一个类继承它,这个类太大了,无法在这里发布。有人能帮我弄清楚怎么做吗?我在网上研究过,没有任何意义
另一个类完全位于不同的文件中。在类声明中:
类RigLegs()
,您应该包括所有要从中继承的类,例如:
class RigLegs(Ancestor1, Ancestor2):
# Your code chere.
不要忘记,您仍然需要调用祖先的初始化逻辑
def __init__(self):
super(RigLegs, self).__init__()
在类声明中:
class RigLegs()
,您应该包括所有要从中继承的类,例如:
class RigLegs(Ancestor1, Ancestor2):
# Your code chere.
不要忘记,您仍然需要调用祖先的初始化逻辑
def __init__(self):
super(RigLegs, self).__init__()
要从其他类继承,请执行以下操作:
class RigLegs(base_class_name):
例如:
class base_class():
items = [1,2,3]
class pie(base_class):
def __init__(self):
print (self.items)
instance = pie()
你可以在网上阅读更多
进口: 文件(apples.py) 文件(main_file.py)
要从其他类继承,请执行以下操作:
class RigLegs(base_class_name):
例如:
class base_class():
items = [1,2,3]
class pie(base_class):
def __init__(self):
print (self.items)
instance = pie()
你可以在网上阅读更多
进口: 文件(apples.py) 文件(main_file.py)
class RigLegs(父类)
?class RigLegs(父类)
?它不工作。它们在不同的文件中,所以我导入它,并通过说class RigLegs(UI\u file\u name.UI\u class\u name)
继承类,它仍然声称RigLegs没有属性“items”,你确定导入正确吗?如果它们被分割成不同的文件,它对我来说非常好。是的,我知道如何正确地导入它:(我正在使用类RigLegs(jtAutoRigi.RigUI):
在导入jtAutoRigUI
之后,将RigUI
类的适当代码区域发布到问题中,我会看看是否能提供帮助。现在,虽然RigUI
中看起来实际上没有项
变量,但它太大了,无法粘贴到其中,因此我使用了一个粘贴器:它不起作用。他们'我们在不同的文件中,所以我导入它,并通过说class RigLegs(UI\u file\u name.UI\u class\u name)
继承类。它仍然声称RigLegs没有属性“items”,你确定导入它正确吗?如果它们被拆分为不同的文件,它对我来说非常好。是的,我知道如何正确导入它:(我正在使用类RigLegs(jtAutoRigi.RigUI):
在导入JTAutoRigi
之后,将RigUI
类的适当代码区域发布到问题中,我会看看是否能提供帮助。现在,虽然RigUI
中看起来实际上没有项
变量,但它太大了,无法粘贴到其中,因此我使用了一个bin粘贴器:正如另一个建议一样on说,它不起作用。它仍然声称没有属性“items”。@user1090427那么这可能是因为你的祖先没有定义项
,你不这么认为吗?@user1090427这是因为你没有调用祖先的\uuuuu init\uuuuu
方法;这就是定义项
的地方;)。查看我的编辑。我以前没有遇到过必须使用super的情况,我不太明白它在做什么。但它也不起作用,因为我得到了错误:super()参数1必须是类型,而不是classobj
@user1090427您的RigUI
类需要从对象
:类RigUI(对象)
。否则,用RigLegs.\uuuu init\uuuuuuu(self)
替换super
调用。正如另一个建议所说,它不起作用。它仍然声称没有属性“items”@user1090427那么这可能是因为您的祖先没有定义项
,您不这么认为吗?@user1090427这是因为您没有调用祖先的\uuuuu init\uuuu
方法;而项就是在该方法中定义的;)。查看我的编辑。我以前没有遇到过必须使用super的情况,我不太明白它在做什么。但它也不起作用,因为我得到了错误:super()参数1必须是类型,而不是classobj
@user1090427您的RigUI
类需要从对象
:类RigUI(对象)
。否则,用RigLegs.\uuuu init\uuuuu(self)
替换super
调用。