类的属性方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了类的属性方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2508字,纯文字阅读大概需要4分钟。
内容图文
![类的属性方法](/upload/InfoBanner/zyjiaocheng/1247/2a9e96b1cd964dfb99750664ef8700ce.jpg)
静态方法:
@staticmethod 装饰器可以把一个方法变成静态方法。 静态方法既不能访问公有属性,也不能访问实例属性 .这样的话,其实跟类已经没什么关系了。它与类唯一的关联就是需要通过类名来调用这个方法
1 class Perison(object): 2 3 def __init__ (self,name): 4 self.name = name 5 6 @staticmethod #静态方法:既不能访问公有属性,也不能访问实例属性 7def eat(name,food): 8print("静态方法 %s %s" %(name,food)) 910 a= Perison(‘zcq‘) 11 a.eat(‘rch‘,‘apple‘) 12 >> 13 静态方法 rch apple
类方法:
@classmethod 装饰器,只能访问类的公有属性,不能访问实例属性
1 class Perison(object): 2 name = ‘我是类变量,我在顶部‘3def__init__(self,name): 4 self.name = name 5 @classmethod # 类方法:只能访问类的公有属性,不能访问实例属性6def walk(self): 7print("类方法",self.name)
a= Perison(‘zcq‘)
8 >>a.walk() 9 类方法 我是类变量,在我顶部
属性方法:
@property 装饰器,把一个方法变成一个静态属性,个人理解也就是把方法变成一个变量
1 class Perison(object): 2 def __init__ (self,name): 3 self.name = name 4 @property #属性方法的作用把一个方法变成一个静态属性(也就是把方法变成一个变量) 5def talk(self): 6print("属性方法 %s" %self.name) 7 a= Perison(‘zcq‘) 8a.talk 9 >> 10 属性方法 zcq
这个属性的方法使用如下
1 class Persion(object): 2 ‘‘‘ 描述方法 ‘‘‘ 3 def __init__ (self,name): 4 self.name = name 5#self.__status = None 6def check_status(self): 7print(‘航班状态 %s‘ %(self.name)) 8return 1 9 @property 10def flight_status(self): 11 status = self.check_status() 12if status == 0: 13print(‘0000‘) 14elif status == 1: 15print(‘1111‘) 16else: 17print(‘----------------‘) 18 @flight_status.setter 19def flight_status(self,status): 20 self.__status = status 21print(‘用setter装饰器修改flight_status返回值‘) 22print(‘self_status值为:‘,self.__status) 23 f=Persion(‘AC98‘) 24f.flight_status 25 f.flight_status =10 #下面解释这里26 >> 27航班状态 AC98 28状态为1 29用setter装饰器修改flight_status返回值 30 self_status值为: 10
f.flight_status =10 解释:因为@property 是把一个方法变成一个静态属性,所以这也就可以理解为变量的赋值 这段赋值是因为下面又写了个flight_status 函数 这函数用了装饰器@flight_status.setter,所以就会打印这函数下定义的值
类的特殊成员方法:
各种类方法使用
1 class Foo: 2 """ 备注信息 """ 3 4 def func(self): 5 pass 6 7 print(Foo.__doc__) 8 >> 9 备注信息
1 class Persion(object): 2 ‘‘‘ 描述方法 ‘‘‘ 3 def __init__ (self,name): 4 self.name = name 5def__call__(self, *args, **kwargs): 6print("__call",args,kwargs) 7def__str__(self): 8return‘<fligh:%s,status:%s>‘ %(self.flight_status,self.__status) 9def__getitem__(self, item): 10print(‘get item‘,item) 11return 22 12def__setitem__(self, key, value): 13print(‘set key‘,key,value) 14def__delitem__(self, key): 15print(‘dele ‘,key) 16 f=Persion(‘AC98‘) 17 result = f[‘k1‘] #自动触发执行 __getitem__18 f[‘k2‘] = ‘zcq‘# 自动触发执行 __setitem__19print(f[‘age‘]) #打印getitem return返回的值20 >> 21get item k1 22set key k2 zcq 23get item age 24 22
原文:http://www.cnblogs.com/zcqdream/p/6107912.html
内容总结
以上是互联网集市为您收集整理的类的属性方法全部内容,希望文章能够帮你解决类的属性方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。