• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

python类属性是什么

python 搞java代码 3年前 (2022-05-21) 24次浏览 已收录 0个评论

首先我们来看一下属性的定义

属性的定义: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

www#gaodaima.com来源gaodai#ma#com搞@@代~&码*网搞代码

实例代码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!

来源:搞代码网:原文地址:https://www.gaodaima.com


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:python类属性是什么

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址