Reputation: 2359
Consider the following class in Python 3:
class Foo(AnotherClass):
id_counter = 0
def __init__(self):
super().__init__()
self.id = Foo.id_counter
Foo.id_counter += 1
Is there a keyword (similar to Python's super
in this case) that can be used to access class variables in place of putting the class name Foo
?
Upvotes: 3
Views: 222
Reputation: 6701
type(self)
or self.__class__
will return the actual class of self
, which might be a subclass of Foo
or Foo
:
class Foo(AnotherClass):
id_counter = 0
def __init__(self):
super().__init__()
self.id = type(self).id_counter
type(self).id_counter += 1
Upvotes: 6