您可以从类本身或从类的实例调用Python静态方法。一个比另一个好吗?
例如:
class Arthur(object):
@staticmethod
def wages():
return 1
def __init__(self, b):
bank_balance = b
def im_rich1(self):
money = self.bank_balance + sum([self.wages()] for i in range(0,365))
return money
def im_rich2(self):
money = self.bank_balance + sum([Arthur.wages()] for i in range(0,365))
return money
使用timeit
进行测试表明没有(明显的)时差。
答案 0 :(得分:1)
这取决于你想做什么。如果使用类名,则在继承类时无法更改使用此调用的函数的行为。如果你使用self,那么继承这个类并覆盖静态方法的类将能够改变函数的行为。