【发布时间】:2020-11-10 07:26:18
【问题描述】:
我想创建一个从类或实例中调用的方法。
例如:
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!
这里我想让print_a也可以被类调用。
如果我使用classmethod,结果是错误的。
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
我希望结果是这样的:
SomeClass(20).print_a() # 20
SomeClass.print_a() # 10
我怎样才能做到这一点?
【问题讨论】:
标签: python python-3.x methods