python类属性指的是什么-创新互联
创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!
成都网站制作、网站设计的开发,更需要了解用户,从用户角度来建设网站,获得较好的用户体验。创新互联公司多年互联网经验,见的多,沟通容易、能帮助客户提出的运营建议。作为成都一家网络公司,打造的就是网站建设产品直销的概念。选择创新互联公司,不只是建站,我们把建站作为产品,不断的更新、完善,让每位来访用户感受到浩方产品的价值服务。小编给大家分享一下python类属性指的是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
首先我们来看一下属性的定义
属性的定义:python中的属性其实是普通方法的衍生。
操作类属性有三种方法:
1.使用@property装饰器操作类属性。
2.使用类或实例直接操作类属性(例如:obj.name,obj.age=18,del obj.age)
3.使用python内置函数操作属性。
属性存在的意义:
1、访问属性时可以制造出和访问字段完全相同的假象,属性由方法衍生而来,如果Python中没有属性,方法完全可以代替其功能。
2、定义属性可以动态获取某个属性值,属性值由属性对应的方式实现,应用更灵活。
3、可以制定自己的属性规则,用于防止他人随意修改属性值。
下面详细介绍三种操作类属性的方法:
1.使用@property装饰器操作类属性。
定义时,在普通方法的基础上添加@property装饰器;属性仅有一个self参数,调用时无需括号;
优点:
1) @property装饰器可以实现其他语言所拥有的getter,setter和deleter的功能(例如实现获取,设置,删除隐藏的属性)
2) 通过@property装饰器可以对属性的取值和赋值加以控制,提高代码的稳定性。
实例代码1:
#encoding=utf-8 class Goods(): #新式类 @property def price(self): #查看属性值 print ('@property ') @price.setter #修改、设置属性 def price(self, value): print ('@price.setter' ) @price.deleter #删除属性 def price(self): print ('@price.deleter') obj = Goods(50) obj.price # 自动执行 @property 修饰的 price 方法,并获取方法的返回值 obj.price = 2000 # 自动执行 @price.setter 修饰的 price 方法,并将2000赋值给方法的参数 del obj.price # 自动执行 @price.deleter 修饰的 price 方法 结果输出: @property @price.setter @price.deleter
实例代码2:通过@property装饰器对属性的取值和赋值加以控制
class Goods(object): def __init__(self): self.value=50 @property def price(self): # 查看属性 return self.value @price.setter # 添加或设置属性(属性名.setter) def price(self, value): if value >=50 and value<=100: #对属性的取值和赋值加以控制 self.value=value print (self.value) else: print ("请输入一个50到100之间的数!") @price.deleter # 删除属性(属性名.deleter) 注意:属性一旦删除,就无法设置和获取 def price(self): del self.value print ("price is deleted!") obj = Goods() print (obj.price) # 自动执行 @property 修饰的 price 方法,并获取方法的返回值 obj.price=106 # 自动执行 @price.setter 修饰的 price 方法,并将106 赋值给方法 del obj.price # 自动执行 @price.deleter 修饰的 price 方法 结果输出: 50 请输入一个50到100之间的数! price is deleted!
以上是python类属性指的是什么的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联-成都网站建设公司行业资讯频道!
文章标题:python类属性指的是什么-创新互联
本文路径:http://azwzsj.com/article/djeecj.html