类的方法分为:普通方法、 静态方法和类方法
调用方式 | 特征 | |
---|---|---|
普通方法 | 由对象去调用执行,属于类 | 至少一个self,对象调用 |
静态方法 | 属于类,但通过类来调用,不依赖于任何对象,方法内部不需要对象封装的值时,可使用静态方法 | 任意参数,没有self,上面添加@staticmethod,类似装饰器的东东 |
类方法 | 静态方法的一种特殊形式,由类调用 | 至少一个cls参数,上面添加classmethod |
一、普通方法:
由对象去调用执行(方法属于类)
1.创建方法
class Province: country = "中国" def __init__(self,name): self.name = name def show(self): #普通方法,由对象去调用执行(方法属于类) print(self.name)
2.访问普通方法:
普通方法的访问需要使用对象 才能访问
obj = Province("河北") obj.show()
Out:
河北
二、静态方法:
1.创建静态方法
添加@staticmethod 并且 def f1(): 括号里面没有self ,这样就创建了静态方法
class Province: country = "中国" def __init__(self,name): self.name = name @staticmethod def f1(arg1,arg2): #静态方法,由类调用执行 print(arg1,arg2)
2.访问静态方法:
静态方法的访问直接使用类就可以访问,不需要使用对象
#访问静态方法 Province.f1(11,22)
out:
11 22
三、类方法
类方法:
1.创建类方法:
添加@classmethod 后创建的就是类方法,cls 就是类的名称
class Province: country = "中国" def __init__(self,name): self.name = name @classmethod def f2(cls): #cls 是类名 print(cls)
2.方法类方法:
直接使用类名和方法名称即可
Province.f2()
out:
<class '__main__.Province'>