hasattr getattr setattr delattr --> (反射)
class Room:
def __init__(self,name):
self.name = name def big_room(self):
print('bigroot') R = Room('回电话') #hasattr 有没某个属性,存在返回True 不存在返回Fales
print(hasattr(R,'name')) #R实例里面 有没有name属性 结果是:True
print(hasattr(R,'big_room')) #R实例里面 有没有big_room属性 结果是:True #getattr 获取某个实例里面属性的值,获取不到默认参数会给出报错
'''getattr(object, name[, default]) -> value'''
print(getattr(R,'name')) #R实例里面 获取name属性值 结果是:回电话
print(getattr(R,'big_room')) #R实例里面 big_room 结果是:函数属性的内存地址
print(getattr(R,'big_room111','不存在')) #R实例里面 big_room 结果是:获取不到,返回不存在 #setattr 设置某个实例的属性值
setattr(R,'test','') #R实例里面,设置test=123的值 与R.test=123 是一回事
print(R.__dict__) #{'name': '回电话', 'test': '123'}
setattr(R,'name','') #修改R实例里面name值
print(R.__dict__) #{'name': '123', 'test': '123'}
setattr(R,'func',lambda x:x+1) #增加一个函数属性 #delattr删除某个实例的属性
delattr(R,'name') #删除R实例里面 name 属性 与del R.name 是一回事
print(R.__dict__) #{'test': '123'}
hasattr getattr setattr delattr --> (反射)的更多相关文章
- isinstance/type/issubclass的用法,反射(hasattr,getattr,setattr,delattr)
6.23 自我总结 面向对象的高阶 1.isinstance/type/issubclass 1.type 显示对象的类,但是不会显示他的父类 2.isinstance 会显示的对象的类,也会去找对象 ...
- python 内置函数的补充 isinstance,issubclass, hasattr ,getattr, setattr, delattr,str,del 用法,以及元类
isinstance 是 python中的内置函数 , isinstance()用来判断一个函数是不是一个类型 issubclass 是python 中的内置函数, 用来一个类A是不是另外一个 ...
- python反射hasattr getattr setattr delattr
反射 : 是用字符串类型的名字 去操作 变量 相比于用eval('print(name)') 留有 安全隐患 反射 就没有安全问题 hasattr 语法: hasattr(object, name)o ...
- Python hasattr,getattr,setattr,delattr
#!/usr/bin/env python # -*- coding:utf-8 -*- # 作者:Presley # 邮箱:1209989516@qq.com # 时间:2018-11-04 # 反 ...
- 反射hasattr; getattr; setattr; delattr
hasattr(obj,name_str):#判断一个对象obj里面是否有对应的name_str字符串的方法,返回True或者Falsegetattr(obj,name_str):#根据字符串去获取对 ...
- python动态函数hasattr,getattr,setattr,delattr
hasattr(object,name) hasattr用来判断对象中是否有name属性或者name方法,如果有,染回true,否则返回false class attr(): def fun( ...
- Python的getattr(),setattr(),delattr(),hasattr()及类内建__getattr__应用
@Python的getattr(),setattr(),delattr(),hasattr() 先转一篇博文,参考.最后再给出一个例子 getattr()函数是Python自省的核心函数,具体使用大体 ...
- 反射之hasattr() getattr() setattr() 函数
Python的hasattr() getattr() setattr() 函数使用方法详解 hasattr(object, name)判断object中有没有一个name字符串对应的方法或属性,返回B ...
- 【转】Python的hasattr() getattr() setattr() 函数使用方法详解
Python的hasattr() getattr() setattr() 函数使用方法详解 hasattr(object, name)判断一个对象里面是否有name属性或者name方法,返回BOOL值 ...
随机推荐
- PREV-5_蓝桥杯_错误票据
问题描述 某涉密单位下发了某种票据,并要在年终全部收回. 每张票据有唯一的ID号.全年所有票据的ID号是连续的,但ID的开始数码是随机选定的. 因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成 ...
- C/C++基础--面向对象编程OOP
基类通常定义一个虚析构函数,通过基类指针析构派生类对象时不会出现未定义的行为. 如果一个类定义析构函数,编译器不会为这个类合成移动操作. 虚函数覆盖,可以显式地加override,可以让程序员的意图更 ...
- Easyloggingpp的使用
对于有开发经验的程序员来说,记录程序执行日志是一件必不可少的事情.通过查看和分析日志信息,不仅可以有效地帮助我们调试程序,而且当程序正式发布运行之后,更是可以帮助我们快速.准确地定位问题.在现在这个开 ...
- “国家重点实验室”完全名单_洹水泛舟_新浪博客 - Google Chrome
“国家重点实验室”完全名单 单位名称(序号) 国家重点实验室名称 建设单位 中国科学院(73) 1 半导体超晶格国家重点实验室 中国科学院半导体研究所 2 应用光学国家重点实验室 中 ...
- Dubbo(5)优化:接口抽取以及依赖版本统一
优化点: 1.在上面provider和consumer程序中都存在DemoProviderService接口了,两个项目中存在同样的东西,代码多余以及不方便管理: 正式的项目中存在很多的接口的,将统一 ...
- PAT 乙级 1067 试密码(20 分)
1067 试密码(20 分) 当你试图登录某个系统却忘了密码时,系统一般只会允许你尝试有限多次,当超出允许次数时,账号就会被锁死.本题就请你实现这个小功能. 输入格式: 输入在第一行给出一个密码(长度 ...
- maven(一 基本操作 命令 标签)
原来一直没有使用maven 小公司,只是听说过这个东西,我没事就喜欢 去学习一些新东西.maven学了几次,但是 没有用上 所以 最后还是忘记了,或者说不知道怎么使用maven,一年半以前公司 改革 ...
- 学习笔记之The Intelligent Investor, Rev. Ed
The Intelligent Investor, Rev. Ed https://www.safaribooksonline.com/library/view/the-intelligent-inv ...
- [UE4]国际化,中英文切换
只有“Text”数据类型才支持国际化 必须以独立游戏窗口运行,语音切换才会起作用.
- sqlserver数据库设计完整性与约束
use StudentManageDB go --创建主键约束 if exists(select * from sysobjects where name='pk_StudentId') alter ...