property

将方法伪装成为属性,可以不用加上()就可以调出其属性。

但是用__dict__,不能调出此属性

from math import pi
class Circle:
def __init__(self,r):
self.r = r
@property
def perimeter(self):
return 2*pi*self.r
@property
def area(self):
return self.r**2*pi c1 = Circle(5)
print(c1.area) # 圆的面积
print(c1.perimeter) # 圆的周长

property

property有2个配合使用的函数

property可以和setter,delecter配合使用,已达到get,set,delect的功能

class Stuff_price:
def __init__(self,original_price,discount):
self.__original_price=original_price
self.__discount=discount
@property
def price(self):
print('我执行了了价格')
return self.__original_price*self.__discount
@price.setter
def price(self,new_discount):
print('我执行了setter')
self.__discount=new_discount
@price.deleter
def price(self):
print('我执行了 delecte')
# del self.__original_price
apple=Stuff_price(10,0.5)
print(apple.price)
apple.price=0.8
print(apple.price)
del apple.price
print(apple.price)
'''输出结果我执行了了价格
5.0
我执行了setter
我执行了了价格
8.0
我执行了 delecte
我执行了了价格
8.0
'''

解析

注意del 并不是表示去删除,而是表示,去操作方法的引子。

这样便实现了,正常的属性的调法

最新文章

  1. 继续SecureString
  2. Validating HTTP data with Play
  3. no leveldbjni64-1.8 in java.library.path
  4. 【cl】Json学习
  5. 简单几何(求交点) UVA 11437 Triangle Fun
  6. jquery easyui datebox 时间控件默认显示当前日期的实现方法
  7. 【模拟】NCPC 2014 K Train passengers
  8. 可选头 IMAGE_OPTIONAL_HEADER
  9. warning: the `gets' function is dangerous and should not be used.(转)
  10. 普联的路由器TL-WR842N和TL-WR845N还有 TL-WR847N哪一个更好,我是家用
  11. Sublime Text 3 常用快捷键
  12. C++中double类型的数字如何保留三位小数点详解
  13. iconfont字体图标和各种CSS小图标
  14. oracle 数据库备份expdp、impdp
  15. Python学习笔记,day5
  16. python中的全局变量和局部变量
  17. 架构师成长之路2.1-PXE+Kickstart原理
  18. [原]Jenkins(九)---jenkins分别发布多个项目到多个远程主机
  19. 11.js循环与函数
  20. iOS 应用如何完全支持 IPv6-ONLY 网络?

热门文章

  1. 今天俺要说一说简单工厂模式(Simple Factory)
  2. Web系统大规模并发:电商秒杀与抢购-----面试必问
  3. 【offer收割机必备】我简历上的Java项目都好low,怎么办?
  4. Chapter 4 Invitations——16
  5. 使用mongoskin操作MongoDB
  6. Linux基础知识第二讲,文件目录命令使用
  7. JAVA开发知识之Java的线程
  8. git第三节----git status与git diff
  9. 第54章 身份资源 - Identity Server 4 中文文档(v1.0.0)
  10. Djiango初识