Code Explanation:
1) class B:
Defines a new class B.
Inside this class, we will have a class variable and two special methods.
2) val = 10
Declares a class variable val.
This variable belongs to the class itself, not to any instance.
Accessible via B.val or via cls.val inside a class method.
3) @staticmethod
@staticmethod
def s(): return 5
Marks s() as a static method.
Static methods do not receive self or cls.
They behave like normal functions, just namespaced inside the class.
Can be called via B.s() or via an instance (B().s()), but cannot access class or instance variables.
4) @classmethod
@classmethod
def c(cls): return cls.val
Marks c() as a class method.
Automatically receives cls, the class itself.
Can access class variables or other class methods, but cannot access instance variables.
In this case, cls.val refers to B.val (10).
5) print(B.s(), B.c())
B.s() → calls static method s() → returns 5.
B.c() → calls class method c() → accesses cls.val → returns 10.
Final Output
5 10
Download Book - 500 Days Python Coding Challenges with Explanation


0 Comments:
Post a Comment