考虑这两个类:
class A(object):
name = "A"
class B(A):
name = "Child of " + A.name
简单的。A.name
将是“A”,B.name
将是“A 的孩子”。
但是将. 的定义硬编码A.name
到. 我自然想写这样的东西:B
name
class B(A):
name = "Child of " + super(B).name
但这引发了NameError
尚未B
在表达式中定义的a super(B)
。(另外,我不确定它是否应该/将是super(B)
或super(B, B)
其他什么,但鉴于NameError
.)
这样做的正确方法是什么,即super
在类属性的定义中使用?