python property方法_Python中property属性的概论和使用方法

property属性

概念:

定义一个方法但是使用装饰器property,只可以有一个self形参

可以用这样的属性动态的获取属性的值

定义方式(经典类)

class Fun():

@property

def size(self):

return 100

fun = Fun()

print(fun.size)

100

定义方式(新式类)

class Fun():

def __init__(self):

self.num = 0

@property

def price(self):

print("get @property")

return self.num

@price.setter

def price(self, value):

self.num = value

print("set @price.setter")

@price.deleter

def price(self):

print("del @price.deleter")

obj = Fun()

print(obj.price) # 可以获取价格,调用property装饰器

obj.price = 100 # 修改价格,调用price.setter装饰器

del obj.price # 删除价格,调用price.deleter装饰器

get @property

0

set @price.setter

del @price.deleter`

使用property方法来创建property属性

可以使用proerty来替代原有的封装的set和get方法

#coding=utf-8

class Foo(object):

def get_bar(self):

print("getter...")

return "laowang"

def set_bar(self, value):

"""必须两个参数"""

print("setter...")

return 'set value' + value

def del_bar(self):

print("deleter...")

return "laowang"

BAR = property(get_bar, set_bar, del_bar, "description...")

obj = Foo()

obj.BAR # 自动调用第一个参数中定义的方法:get_bar

obj.BAR = "alex" # 自动调用第二个参数中定义的方法:set_bar方法,并将“alex”当作参数传入

desc = Foo.BAR.__doc__ # 自动获取第四个参数中设置的值:description...

print(desc)

del obj.BAR # 自动调用第三个参数中定义的方法:del_bar方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值