Code Explanation:
1. Defining the Base Class
class Base:
This defines a class named Base.
It will act as a parent (superclass) for other classes.
2. Class Variable count
count = 0
count is a class variable, shared by Base and all its subclasses.
It keeps track of how many subclasses of Base have been created.
3. The __init_subclass__ Method
def __init_subclass__(cls):
__init_subclass__ is a special hook method in Python.
It is automatically called every time a subclass of Base is created.
cls refers to the newly created subclass, not Base.
4. Incrementing the Subclass Counter
Base.count += 1
Each time a subclass is defined:
Base.count is incremented by 1.
This counts how many subclasses inherit from Base.
5. Assigning an ID to the Subclass
cls.id = Base.count
An attribute id is dynamically added to the subclass.
Each subclass gets a unique ID based on the order of creation.
6. Creating Class A
class A(Base): pass
A inherits from Base.
When this line runs:
__init_subclass__ is automatically triggered.
Base.count becomes 1
A.id is set to 1
7. Creating Class B
class B(Base): pass
B also inherits from Base.
Again, __init_subclass__ runs:
Base.count becomes 2
B.id is set to 2
8. Printing the Values
print(A.id, B.id, Base.count)
A.id → 1
B.id → 2
Base.count → 2
9. Final Output
1 2 2

0 Comments:
Post a Comment