类的方法有五种:
- 实例方法:实例对象的方法,由各实例对象独享
- 类方法:类对象的方法,由所有实例对象共享
- 自由方法:由类所在命名空间管理,类对象独享
- 静态方法:由类对象和实例对象共享
- 保留方法: 保留使用,如_len_()
1.实例方法
def < 方法名>(self, <参数列表>)
class Democlass: def __init__(self, name): #创建构造函数 self.name = name #创建实例属性name def lucky(self): # 创建实例方法lucky s = 0 for c in self.name: s+=ord(c)%100 return s dc1 = Democlass("老王") dc2 = Democlass("老李") print(dc1.name,"的幸运数字是:",dc1.lucky()) print(dc2.name,"的幸运数字是:", dc2.lucky()) 运行结果:老王 的幸运数字是: 148 老李 的幸运数字是: 115
2.类方法
class <类名>
@classmethod
def <方法名> (cls, <参数列表>)
- 类方法至少包含一个参数,表示类对象,建议使用cls
- @classmethod 是装饰器
- 类方法只能操作类属性和其他类方法,不能操作实例属性和实例方法
class Democlass: count = 0 def __init__(self,name): self.name = name Democlass.count +=1 @classmethod def getchrcount(cls): s = "零一二三四56789" return s[Democlass.count] #类方法只可以操作类属性,count为类属性 dc1 = Democlass("老王") dc2 = Democlass("老李") print(dc1.getchrcount()) print(Democlass.getchrcount()) 运行结果: 二 二
3.自由方法(定义在类的命名空间中的函数,由类对象独享)
def <方法名>(<参数列表>)
自由方法不需要self或cls这类参数,可以没有参数
自由方法只能操作类属性和类方法,不能操作实例属性和实例方法
自由方法的使用只能使用< 类名>
class Democlass: count = 0 def __init__(self,name): self.name = name Democlass.count+=1 def f00(): #创建自由方法 Democlass.count*=100 return Democlass.count dc1 = Democlass("老王") print(Democlass.f00()) 运行结果: 100
4.静态方法
class < 类名>
@staticmethod
def < 方法名>(<参数列表>)
静态方法只能操作类属性和类方法
class Democlass: count = 0 d def __init__(self,name): self.name = name Democlass.count+=1 @staticmethod def f00(): #创建静态方法 Democlass.count*=100 return Democlass.count dc1 = Democlass("老王") print(Democlass.f00()) print(dc1.f00()) 运行结果:100 10000
5.保留方法
class Democlass: def __init__(self,name): self.name = name def __len__(self): return len(self.name) dc1 = Democlass("老王") dc2 = Democlass("kjuj") print(len(dc1)) print(len(dc2)) 运行结果:二 四
今天的文章类的方法分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/46294.html