python类有三种方法。
1、一般方法
即不加任何修饰的,直接用def定义的方法。如:
In [14]: class A: ...: def a(self): ...: print('一般方法') ...: In [15]: class_A = A() In [16]: class_A.a() 一般方法
2、staticmethod方法
经过staticmethod修饰过的类方法无需实例化即可被调用,而且该类方法不再需要self作为第一参数。
In [107]: class A: ...: @staticmethod ...: def foo(x): ...: print(x) ...: In [108]: A.foo(1)
这样做的好处是,以后重构类的时候不需要修改init函数,只要额外添加需要处理的函数,然后使用@staticmethod修饰即可。
3、classmethod方法
类方法经 classmethod 修饰后无需实例化即可被调用,而且该类方法的第一参数不再是self,而是cls,表示类本身。
In [20]: class B: ...: a = 1 ...: def __init__(self): ...: print('init class A') ...: @classmethod ...: def func1(cls): ...: print('classmehod func1') ...: print(cls.a) ...: In [21]: B.func1() classmehod func1 1
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试