在Python中,最好使用类或实例调用静态方法吗?

时间:2016-12-08 10:00:59

标签: python performance static-methods

您可以从类本身或从类的实例调用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进行测试表明没有(明显的)时差。

1 个答案:

答案 0 :(得分:1)

这取决于你想做什么。如果使用类名,则在继承类时无法更改使用此调用的函数的行为。如果你使用self,那么继承这个类并覆盖静态方法的类将能够改变函数的行为。