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