SimonT
SimonT

Reputation: 2359

Python keyword to access class variable

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

Answers (1)

Nicolas Cortot
Nicolas Cortot

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

Related Questions