- 主题:如何在子类类属性定义中调用父类属性
class A:
attr1 = 1
class B(A):
attr2 = A.attr1 + 1
最后一行怎么才能避免显式引用父类名称,super总用不对
--
FROM 124.126.139.*
继承树还有可能继续,都要显式调用A?没有继承的味道
【 在 ToSimplicity 的大作中提到: 】
: 就应该用A.attr1啊,在B这对象上言,A这个对象又不是动态的。
--
FROM 124.126.139.*
class A:
attr1 = 1
class B(A):
def __init__(self):
attr2 = self.__class__.attr1 + 1
print(attr2)
--
FROM 60.1.11.*
引用构造函数
【 在 pseudo 的大作中提到: 】
: class A:
: attr1 = 1
: class B(A):
: ...................
--
FROM 39.144.103.*
类属性,不是实例属性,这里没有构造函数
【 在 DF11G 的大作中提到: 】
: 引用构造函数
--
FROM 124.126.139.*
哦哦哦,那得构造一个元类M,用__prepare-_处理命名空父类指定metaclass=M
然后子类可以直接访问父类的成员
看文档吧
不过会有一堆副作用
【 在 pseudo 的大作中提到: 】
: 类属性,不是实例属性,这里没有构造函数
--
FROM 58.240.229.*