[转载] python中@property和property函数使用
参考链接: Python property()
1、基本的@property使用,可以把函数当做属性用
class Person(object):
@property
def get_name(self):
print('我叫xxx')
def main():
person = Person()
person.get_name
if __name__ == '__main__':
main()
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
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 #调用第三个删除方法
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))
[转载] python中@property和property函数使用相关推荐
- [转载] python中chr()和ord()函数的用法
参考链接: Python的 chr() 在文章Python中raw_input()与input()的区别(http://blog.csdn.net/hk_john/article/details/77 ...
- [转载] Python 中reduce()与lambda函数详解
参考链接: Python中的reduce a = [2,22,222] Sn = reduce(lambda x,y:x+y,a) print "计算和为:",Sn reduce( ...
- [转载] python中append和extend函数区别
参考链接: Python中的append和extend append和extend都是python内置函数,都有扩展列表的元素功能,但两者的扩展方式是不同的. 通过使用?list.append命令查看 ...
- [转载] python中的eval函数
参考链接: Python中的求值函数 eval eval函数很强大,可以将字符串做为有效的表达式来求值并返回计算结果,如下所示: # 基本的数学计算 In [1]: eval("1 + 1& ...
- [转载] Python中的数学函数,三角函数,随机数函数
参考链接: Python中的数学math函数 3(三角函数和角函数) 数学函数 函数返回值 ( 描述 )abs(x)返回数字的绝对值,如abs(-10) 返回 10ceil(x)返回数字的上入整数,如 ...
- Python中str()与repr()函数的区别——repr() 的输出追求明确性,除了对象内容,还需要展示出对象的数据类型信息,适合开发和调试阶段使用...
Python中str()与repr()函数的区别 from:https://www.jianshu.com/p/2a41315ca47e 在 Python 中要将某一类型的变量或者常量转换为字符串对象 ...
- Python中sort和sorted函数代码解析
Python中sort和sorted函数代码解析 本文研究的主要是Python中sort和sorted函数的相关内容,具体如下. 一.sort函数 sort函数是序列的内部函数 函数原型: L.sor ...
- python中内置数学函数详解和实例应用之三角函数_初级阶段(二)
学习目标: 利用python进行三角函数运算 学习内容: python中的三角函数合集和应用实例 转载请注明出处! 学习产出: 环境:python 3.7, 利用shell进行实例操作. Note: ...
- Python中的os.mkdir()函数
Python中的os.mkdir()函数 声明 本文转载自毛毛打死小怪兽的文章 1. 创建目录 在Python中可以使用os.mkdir()函数创建目录(创建一级目录). 其原型如下所示: os.mk ...
- python平方数迭代器_对python中的高效迭代器函数详解
python中内置的库中有个itertools,可以满足我们在编程中绝大多数需要迭代的场合,当然也可以自己造轮子,但是有现成的好用的轮子不妨也学习一下,看哪个用的顺手~ 首先还是要先import一下: ...
最新文章
- 使用Response.ContentType 来控制下载文件的类型
- Matrix工作室第六届纳新AI组考核题(A卷)
- step 1 android-sdk-download
- 仅使用numpy从头开始实现神经网络,包括反向传播公式推导过程
- python-list列表排序问题 sort 与 sorted
- 使用Red Hat Enterprise Linux的实时内核
- java 不同类之间传递数据_java 数据在不同类之间的传递
- Flask-认识flask
- ios学习:Xcode工具
- 会话控制_2-5 编程练习
- Netty 整合 MessagePack 序列化框架 + LengthFieldBasedFrameDecoder 自定义解码器
- 电影推荐系统kaggle
- matlab最优化问题
- 用SPSS做数据分析(1)
- polkit启动失败_Linux MySQL 常见无法启动或启动异常的解决方案(上)
- 类似微信聊天 日期算法(转换)
- 联通光纤猫入户升级:千兆光纤宽带的网卡,为什么只显示100M?
- Apache Flink fault tolerance源码剖析(六)
- 营丘福稻品牌山东大米 国稻种芯·中国水稻节:淄博高青招牌
- 【怀旧】 “AutoCAD 经典”界面
热门文章
- 【考研】2020年,计算机,考研,专业课(408)大纲,排版校对版
- spark需要maven管理吗_使用Eclipse编写Spark应用程序(Scala+Maven)
- java web宿舍管理系统源码_JavaWeb宿舍管理系统(附 演示、源码下载地址)
- pycharm下自建python包引入失败解决方案
- Unity3D之UGUI基础6:Slider滑条
- Educational Codeforces Round 52: D. Three Pieces(记忆化搜索)
- bzoj 4260: Codechef REBXOR(01字典树)
- bzoj 4001: [TJOI2015]概率论(找规律)
- [PyTorch] reverse the normalization
- numpy与线性代数(简易版)