考虑Python 3中的以下类:
class Foo(AnotherClass):
id_counter = 0
def __init__(self):
super().__init__()
self.id = Foo.id_counter
Foo.id_counter += 1
是否有一个关键字(在本例中类似于Python的super
)可用于访问类变量而不是放置类名Foo
?
答案 0 :(得分:6)
type(self)
或self.__class__
将返回self
的实际类,该类可能是Foo
或Foo
的子类:
class Foo(AnotherClass):
id_counter = 0
def __init__(self):
super().__init__()
self.id = type(self).id_counter
type(self).id_counter += 1