1.静态方法:
静态方法是指类中无需实例参与即可调用的方法(不需要self参数),在调用过程中,
无需将类实例化,直接在类之后使用.号运算符调用方法。
通常情况下,静态方法使用@staticmethod装饰器来声明。
class A(object):
@staticmethod
def func_a():
print('Hello Python')
if __name__ == '__main__':
A.func_a()
# 也可以使用实例调用,但是不会将实例作为参数传入静态方法
ca = A()
ca.func_a()
2.类方法:
类方法在Python中使用比较少,类方法传入的第一个参数为cls,是类本身。并且,类方法可以通过类直接调用,
或通过实例直接调用。但无论哪种调用方式,最左侧传入的参数一定是类本身。
通常情况下,类方法使用@classmethod装饰器来声明
class A(object):
@classmethod
def func_a(cls):
print(type(cls), cls)
if __name__ == '__main__':
A.func_a()
ca = A()
ca.func_a()
3.实例方法:
实例方法,除静态方法与类方法外,类的其他方法都属于实例方法。
实例方法需要将类实例化后调用,如果使用类直接调用实例方法,需要显式地将实例作为参数传入。
最左侧传入的参数self,是实例本身。
class A(object):
def func_a(self):
print('Hello Python')
if __name__ == '__main__':
# 使用实例调用实例方法
ca = A()
ca.func_a()
# 如果使用类直接调用实例方法,需要显式地将实例作为参数传入
A.func_a(ca)