property装饰器
2024-09-12 17:00:14
# 需要了解的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
最新文章
- I2C子系统之驱动SSD1306 OLED
- ARM汇编指令调试方法
- ELF Format 笔记(十二)—— 段类型(segment types)
- 内置函数callable(object)
- Visual Studio 技能GET
- 通过pycurl模块添加put和delete请求
- git -- 出现冲突的情况
- View和ViewGroup的区别 -- Touch事件处理
- 利用c++操作XML,主要是内部循环方法的使用
- 一般处理程序获取Session方式
- [BZOJ 2480] [SPOJ 3105] Mod
- openstack-KVM-Memory
- windows多线程同步--互斥量
- android ndk-build 编译静态库libxx.a 以及Android studio openssl 静态库配置(cmake)
- 前端框架amaze ui
- "; java.lang.NoSuchFieldError: HBASE_CLIENT_PREFETCH_LIMIT
- JavaScript——历史与简介
- 【译】第四篇 Replication:事务复制-订阅服务器
- vue兼容ie
- Mysql双向同步热备份设置
热门文章
- python实战案例--银行系统
- 未安装Oracle客户端的服务器上,使用ASP.NET远程连接Oracle
- H5 55-行高
- hibernate多对多的更新问题
- Spectral Bounds for Sparse PCA: Exact and Greedy Algorithms[贪婪算法选特征]
- 自签名证书 nginx tomcat
- Mixing x86 with x64 code (混合编写x86和x64代码)
- 【Python3练习题 020】 求1+2!+3!+...+20!的和
- Day5-1 面向对象和面向过程
- hive条件函数