python基础学习之类的属性 增删改查
2024-09-05 15:56:38
类中的属性如何在类外部使用代码进行增删改查呢
增加、改变:
setattr内置函数以及 __setattr__魔法方法
class A:
aaa = '疏楼龙宿'
a = A()
setattr(a,'aaa','人间至帅')
内置函数:三个参数,第一个是类名,第二个是属性名字符串,第三个是需要修改的内容,注意,需要先实例化
a.__setattr__('aaa','人间至帅')
魔法方法:类中的魔法方法调用,传入属性名字符串和需要修改的内容
增加又是怎么样的呢?同样是这个方法,如果你输入的属性名,匹配不到,那么就会自动增加,比如:
setattr(a,'bbb',123)
这就会增加一个bbb = 123 的属性进去
查找:
hasattr内置函数和__hasattr__魔法方法
getattr内置函数和__getattr__魔法方法
class A:
aaa = '疏楼龙宿'
a = A()
hasattr(a,'aaa') 返回bool值,告诉你有没有这个属性在里面
getattr(a,'aaa') 返回属性的具体内容,获取属性,要注意的是,当获取的属性不存在,即会报错;同样,可以通过对对应的魔法方法修改,来让函数输出其他内容。
删除:
delattr内置函数和 __delattr__ 魔法方法
或者 直接 del 这个实例化
delattr(re , 'ccc')
re .__delattr__('bbb')
del re
其涵义同上
总结,类的方法就是***attr这个,查找就是哈西attr(hasattr)或者获取attr(getattr),增加/修改就是设置attr(setattr),删除就是删除attr(delattr),以及上述该实例化对应的魔法方法
最新文章
- Ansible-Tower快速入门-7.配置实时事件【翻译】
- CPU与内存的关系
- wc(Word Count)
- 再看.net本质(二)
- 7)Java数据类型
- 对比MySQL,什么场景MongoDB更适用
- UIColor各种颜色转换
- SpringMVC Ajax返回的请求json 的方式来解决在中国字符串乱码问题
- Java静态代理和动态代理总结
- 网络不能上网但能ping通处理
- 地址下拉框,需要js级联js
- 关于 linux中TCP数据包(SKB)序列号的小笔记
- casbin-权限管理
- 阿里云RDS for MySQL 快速入门——笔记
- 【转载】访问IIS中网站出现 403.14 - Forbidden报错信息
- PHP中通过bypass disable functions执行系统命令的几种方式
- jQuery学习笔记(一)
- 《HTTP - 状态码》
- python-小数据池 and 编码
- TDate赋值给Variant时注意的问题
热门文章
- Shpfile文件的字段类型说明
- Error Code: 1055.Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'userinfo.
- 三、mysql主从复制
- ituring 挂了
- HTML marquee
- vue &; dynamic components
- ffmpeg concat设置绝对路径
- GoEasy使用阿里云OSS出现的问题
- 1月加密货币交易所访问量破3亿!NGK生态星空计划、NGK生态所带来双重利好!
- go语言第一天(变量与基本类型)