I want to make a method to be called from class or instance.
For example :
class SomeClass:
a = 10
def __init__(self, val):
self.a = val
def print_a(self):
print(self.a)
SomeClass(20).print_a() # 20
SomeClass.print_a() # Error!
Here I want to make print_a can be called by class either.
If I use classmethod, the result is wrong.
class SomeClass:
a = 10
def __init__(self, val):
self.a = val
@classmethod
def print_a(cls):
print(cls.a)
SomeClass(20).print_a() # 10 (wrong!)
SomeClass.print_a() # 10
I hope the result is like this:
SomeClass(20).print_a() # 20
SomeClass.print_a() # 10
How can I achieve this?