python中的@staticmethod作用及用法

静态方法的使用场景:

如果在方法中不需要访问任何实例方法和属性,纯粹地通过传入参数并返回数据的功能性方法,那么它就适合用静态方法来定义,

它节省了实例化对象的开销成本,往往这种方法放在类外面的模块层作为一个函数存在也是没问题的,

而放在类中,仅为这个类服务。。


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>

 

 
上一篇:Python中的staticmethod和classmethod


下一篇:js的继承