DEV Community

Discussion on: Python: __init__() is not the only constructor

Collapse
 
swdmnd profile image
ariefatkhur • Edited

This raises a new question for me. When I daclare a variable (or name) in class scope, say, MAX_Inst = 4, usually I would call this from an instance of that class (self.MAX_Inst). This example shows that it is also a class/static variable, hence could be called from cls context. My question is, does python allocate 2 types of variable, one for class one for instance?

Thank you for bringing up new. new creates a new instance of object (thus returning an obj is the point), and init initialize the created instance (since initialization could only be done to something that exists). That's what I get from the naming and this article. It's not named const (like in php) for some reason. Python split the construction process in 2 steps, before and after it's created.

Collapse
 
nestedsoftware profile image
Nested Software

I think Python will look up variables in __class__ if it does not find them associated with the instance. So there should only be one variable bound to the class.