静态方法的使用场景:
如果在方法中不需要访问任何实例方法和属性,纯粹地通过传入参数并返回数据的功能性方法,那么它就适合用静态方法来定义,
它节省了实例化对象的开销成本,往往这种方法放在类外面的模块层作为一个函数存在也是没问题的,
而放在类中,仅为这个类服务。。
staticmethod用于修饰类中的方法,使其可以在不创建类实例的情况下调用方法,这样做的好处是执行效率比较高。
当然,也可以像一般的方法一样用实例调用该方法。该方法一般被称为静态方法。静态方法不可以引用类中的属性或方法,其参数列表也不需要约定的默认参数self。
我个人觉得,静态方法就是类对外部函数的封装,有助于优化代码结构和提高程序的可读性。当然了,被封装的方法应该尽可能的和封装它的类的功能相匹配。
class A: def test(self,a): self.a=a print("我是test") # return self.a @staticmethod def m(): print("我是staticmethod") b=A() print(b) #<__main__.A object at 0x0000026D2197D808> print(b.test)#<bound method A.test of <__main__.A object at 0x00000218C233FE08>> print(A.test) #<function A.test at 0x00000218C2418168> print(A.m) #<function A.m at 0x0000026D21987438>