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>
 
原文地址:https://www.cnblogs.com/longyi2020/p/14451406.html