一般来说,要使用某个类的方法,需要先实例化一个对象再调用方法。
而使用@staticmethod或@classmethod,就可以不需要实例化,直接类名.方法名()来调用。
- python staticmethod 返回函数的静态方法。
该方法不强制要求传递参数, - 声明一个静态方法:
class C(object):
@staticmethod
def f(arg1, arg2, ...):
...
- 可以不实例化调用该方法 C.f()
- 实现实例化使用 C().f()
什么时候使用@staticmethod
当某个方法(函数)不需要用到对象中的任何资源,将这个方法改为一个静态方法,
-
加上
@staticmethod
; - 这个函数的形参不需要添加
self
加上之后, 这个方法就和普通的函数没有什么区别了, 只不过写在了一个类中, 可以使用这个类的对象调用,也可以使用类直接调用,
网友评论