参考链接: 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函数使用相关推荐

  1. [转载] python中chr()和ord()函数的用法

    参考链接: Python的 chr() 在文章Python中raw_input()与input()的区别(http://blog.csdn.net/hk_john/article/details/77 ...

  2. [转载] Python 中reduce()与lambda函数详解

    参考链接: Python中的reduce a = [2,22,222] Sn = reduce(lambda x,y:x+y,a) print "计算和为:",Sn reduce( ...

  3. [转载] python中append和extend函数区别

    参考链接: Python中的append和extend append和extend都是python内置函数,都有扩展列表的元素功能,但两者的扩展方式是不同的. 通过使用?list.append命令查看 ...

  4. [转载] python中的eval函数

    参考链接: Python中的求值函数 eval eval函数很强大,可以将字符串做为有效的表达式来求值并返回计算结果,如下所示: # 基本的数学计算 In [1]: eval("1 + 1& ...

  5. [转载] Python中的数学函数,三角函数,随机数函数

    参考链接: Python中的数学math函数 3(三角函数和角函数) 数学函数 函数返回值 ( 描述 )abs(x)返回数字的绝对值,如abs(-10) 返回 10ceil(x)返回数字的上入整数,如 ...

  6. Python中str()与repr()函数的区别——repr() 的输出追求明确性,除了对象内容,还需要展示出对象的数据类型信息,适合开发和调试阶段使用...

    Python中str()与repr()函数的区别 from:https://www.jianshu.com/p/2a41315ca47e 在 Python 中要将某一类型的变量或者常量转换为字符串对象 ...

  7. Python中sort和sorted函数代码解析

    Python中sort和sorted函数代码解析 本文研究的主要是Python中sort和sorted函数的相关内容,具体如下. 一.sort函数 sort函数是序列的内部函数 函数原型: L.sor ...

  8. python中内置数学函数详解和实例应用之三角函数_初级阶段(二)

    学习目标: 利用python进行三角函数运算 学习内容: python中的三角函数合集和应用实例 转载请注明出处! 学习产出: 环境:python 3.7, 利用shell进行实例操作. Note: ...

  9. Python中的os.mkdir()函数

    Python中的os.mkdir()函数 声明 本文转载自毛毛打死小怪兽的文章 1. 创建目录 在Python中可以使用os.mkdir()函数创建目录(创建一级目录). 其原型如下所示: os.mk ...

  10. python平方数迭代器_对python中的高效迭代器函数详解

    python中内置的库中有个itertools,可以满足我们在编程中绝大多数需要迭代的场合,当然也可以自己造轮子,但是有现成的好用的轮子不妨也学习一下,看哪个用的顺手~ 首先还是要先import一下: ...

最新文章

  1. 使用Response.ContentType 来控制下载文件的类型
  2. Matrix工作室第六届纳新AI组考核题(A卷)
  3. step 1 android-sdk-download
  4. 仅使用numpy从头开始实现神经网络,包括反向传播公式推导过程
  5. python-list列表排序问题 sort 与 sorted
  6. 使用Red Hat Enterprise Linux的实时内核
  7. java 不同类之间传递数据_java 数据在不同类之间的传递
  8. Flask-认识flask
  9. ios学习:Xcode工具
  10. 会话控制_2-5 编程练习
  11. Netty 整合 MessagePack 序列化框架 + LengthFieldBasedFrameDecoder 自定义解码器
  12. 电影推荐系统kaggle
  13. matlab最优化问题
  14. 用SPSS做数据分析(1)
  15. polkit启动失败_Linux MySQL 常见无法启动或启动异常的解决方案(上)
  16. 类似微信聊天 日期算法(转换)
  17. 联通光纤猫入户升级:千兆光纤宽带的网卡,为什么只显示100M?
  18. Apache Flink fault tolerance源码剖析(六)
  19. 营丘福稻品牌山东大米 国稻种芯·中国水稻节:淄博高青招牌
  20. 【怀旧】 “AutoCAD 经典”界面

热门文章

  1. 【考研】2020年,计算机,考研,专业课(408)大纲,排版校对版
  2. spark需要maven管理吗_使用Eclipse编写Spark应用程序(Scala+Maven)
  3. java web宿舍管理系统源码_JavaWeb宿舍管理系统(附 演示、源码下载地址)
  4. pycharm下自建python包引入失败解决方案
  5. Unity3D之UGUI基础6:Slider滑条
  6. Educational Codeforces Round 52: D. Three Pieces(记忆化搜索)
  7. bzoj 4260: Codechef REBXOR(01字典树)
  8. bzoj 4001: [TJOI2015]概率论(找规律)
  9. [PyTorch] reverse the normalization
  10. numpy与线性代数(简易版)