首先我们先创建一个带有实例方法、类方法和静态方法的类
class CLanguage:
# 构造函数,创建对象时被调用
def __init__(self, name, ID):
self.name = name
self.ID = ID
# 定义一个实例方法
def shilifangfa(self):
print("正在调用实例方法%d%d" % (self.name, self.ID))
# 定义一个类方法
@classmethod——类方法装饰器
def leifangfa(cls,a):
print("正在调用类方法%s"%a)
# 定义一个静态法
@staticmethod——静态方法装饰器
def jingtaifangfa(name, ID):
print(name, ID)
————————————————————————
#实例方法最大的特点就是,它最少要包含一个 self 参数,用于绑定调用此方法的实例对象
————————————————————————
实例方法通常会用实例对象直接调用,例如:
clang = CLanguage(1,2) —— 创建实例对象
clang.shilifangfa() ———— 调用实例方法
结果:正在调用实例方法12
————————————————————————
#类方法和实例方法相似,它最少也要包含一个参数,只不过类方法中通常将其命名为 cls,Python 会自动将类本身绑定给 cls 参数(注意,绑定的不是类对象)。也就是说,我们在调用类方法时,无需显式为 cls 参数传参,当然也可以传参
————————————————————————
使用类名直接调用类方法(类名点方法)
CLanguage.leifangfa(1)
结果:正在调用类方法1
————————————————————————
#静态方法,其实就是函数,和函数唯一的区别是,静态方法定义在类中,而函数则定义在程序中
————————————————————————
使用类名直接调用静态方法
CLanguage.jingtaifangfa(“传什么”, “是什么”)
使用实例对象调用静态方法(实例对象只是调用,和传入的参数没关系)
clang = CLanguage(1, 2)
clang.jingtaifangfa(“传什么”, “是什么”)
结果都是:传什么 是什么
————————————————————————
重点:类方法和静态方法爱会不会,用的比较少,但实例方法一定要会
以上为个人见解,如果不妥之处,还望各大神不吝赐教