python中@property和property函数常见使用方法示例
作者:以梦为马越骑越傻 时间:2021-11-13 03:32:20
本文实例讲述了python中@property和property函数常见使用方法。分享给大家供大家参考,具体如下:
1、基本的@property使用,可以把函数当做属性用
class Person(object):
@property
def get_name(self):
print('我叫xxx')
def main():
person = Person()
person.get_name
if __name__ == '__main__':
main()
运行结果:
我叫xxx
2、@property的set,deleter,get
class Goods(object):
@property
def price(self):
print('@property')
@price.setter
def price(self,value):
print('@price.setter:'+str(value))
@price.deleter
def price(self):
print('@price.deleter')
obj = Goods()
obj.price = 50
obj.price
del obj.price
运行结果:
@price.setter:50
@property
@price.deleter
3、@property demo
class Goods(object):
def __init__(self):
#原价
self.original_price = 100
#折扣
self.discount = 0.8
@property
def price(self):
#实际价格=原价*折扣
new_price = self.original_price*self.discount
return new_price
@price.setter
def price(self,value):
self.original_price = value
@price.deleter
def price(self):
del self.original_price
obj = Goods()
obj.price
obj.price = 200
del obj.price
4、property函数使用
class Foo(object):
def get_name(self):
print('get_name')
return 'laowang'
def set_name(self, value):
'''必须两个参数'''
print('set_name')
return 'set value' + value
def del_name(self):
print('del_name')
return 'laowang'
NAME = property(get_name, set_name, del_name, 'description.')
obj = Foo()
obj.NAME #调用get方法
obj.NAME = 'alex' #调用set方法
desc = Foo.NAME.__doc__ #调用第四个描述
print(desc)
del obj.NAME #调用第三个删除方法
运行结果:
get_name
set_name
description.
del_name
5、property函数操作私有属性的get和set方法
class Person(object):
def __init__(self, age):
self.__age = age
def set_age(self, value):
self.__age = value
def get_age(self):
return self.__age
AGE = property(get_age, set_age)
person = Person(15)
person.AGE = 20
print(str(person.AGE))
运行结果:
20
希望本文所述对大家Python程序设计有所帮助。
来源:https://blog.csdn.net/weixin_42670402/article/details/83216845
标签:python,@property,property函数
0
投稿
猜你喜欢
对django layer弹窗组件的使用详解
2021-09-08 00:09:38
Python Tornado批量上传图片并显示功能
2023-08-07 22:33:21
MySQL关于sql_mode解析与设置讲解
2024-01-25 00:40:59
OpenAI的Whisper模型进行语音识别使用详解
2022-02-24 23:50:51
Golang中Interface接口的三个特性
2024-04-23 09:35:46
SqlServer 索引自动优化工具
2012-10-07 10:41:09
常见系统中文字体的英文名
2008-03-03 12:44:00
Python切片操作去除字符串首尾的空格
2023-08-08 19:19:21
Python数字图像处理代数之加减乘运算
2023-03-20 07:51:26
一些文件未注册导致mssql表文件无法找开的解决方法
2024-01-26 18:42:22
教你快速掌握SQL语言中游标的使用技巧
2009-01-08 16:24:00
SqlServer 多种分页方式 详解(含简单速度测试)
2024-01-15 07:28:04
详解Vue的ref特性的使用
2024-06-07 15:23:02
MySQL如何修改账号的IP限制条件详解
2024-01-14 19:41:59
Python 3.6 -win64环境安装PIL模块的教程
2021-10-30 11:02:31
Python如何生成xml文件
2022-07-25 06:00:33
Python3如何判断三角形的类型
2022-01-06 22:12:51
javascript+HTML5 canvas绘制时钟功能示例
2024-05-05 09:14:01
交互设计:简单
2011-08-27 16:46:27
Python+Selenium实现网站滑块拖动操作
2023-03-15 16:31:51