# 需要了解的property的用法
class People:
def __init__(self,name):
self.__name=name @property
def name(self):
return '<name:%s>' %self.__name @name.setter
def name(self,new_name):
if type(new_name) is not str:
print('名字必须是str类型')
return
self.__name=new_name @name.deleter
def name(self):
del self.__name obj=People('egon') #查看 name
print(obj.name) obj.name='ok' #修改 name 属性
print(obj.name) del obj.name #删除 name 属性
print(obj.__dict__)

结果:

<name:egon>
<name:ok>
{}

关于property装饰器的使用顺序:

class People:
def __init__(self,name):
self.__name=name def xxx_name(self):        #查看
return '<name:%s>' %self.__name def yyy_name(self,new_name):    #修改
if type(new_name) is not str:
print('名字必须是str类型')
return
self.__name=new_name def zzz_name(self):        #删除
del self.__name name=property(xxx_name,yyy_name,zzz_name) #格式命名,固定的顺序(查->改->删) obj=People('egon')
print(obj.name) # obj.name=123
# print(obj.name) del obj.name
print(obj.__dict__)

如果要在类外面调用类中的隐藏属性就可以使用property

最新文章

  1. I2C子系统之驱动SSD1306 OLED
  2. ARM汇编指令调试方法
  3. ELF Format 笔记(十二)—— 段类型(segment types)
  4. 内置函数callable(object)
  5. Visual Studio 技能GET
  6. 通过pycurl模块添加put和delete请求
  7. git -- 出现冲突的情况
  8. View和ViewGroup的区别 -- Touch事件处理
  9. 利用c++操作XML,主要是内部循环方法的使用
  10. 一般处理程序获取Session方式
  11. [BZOJ 2480] [SPOJ 3105] Mod
  12. openstack-KVM-Memory
  13. windows多线程同步--互斥量
  14. android ndk-build 编译静态库libxx.a 以及Android studio openssl 静态库配置(cmake)
  15. 前端框架amaze ui
  16. &quot; java.lang.NoSuchFieldError: HBASE_CLIENT_PREFETCH_LIMIT
  17. JavaScript——历史与简介
  18. 【译】第四篇 Replication:事务复制-订阅服务器
  19. vue兼容ie
  20. Mysql双向同步热备份设置

热门文章

  1. python实战案例--银行系统
  2. 未安装Oracle客户端的服务器上,使用ASP.NET远程连接Oracle
  3. H5 55-行高
  4. hibernate多对多的更新问题
  5. Spectral Bounds for Sparse PCA: Exact and Greedy Algorithms[贪婪算法选特征]
  6. 自签名证书 nginx tomcat
  7. Mixing x86 with x64 code (混合编写x86和x64代码)
  8. 【Python3练习题 020】 求1+2!+3!+...+20!的和
  9. Day5-1 面向对象和面向过程
  10. hive条件函数