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值 ...
随机推荐
- 【linux】安装docker
硬件Centos6.9 x86_64 1.查看centos内核,uname -r 目前,CentOS 仅发行版本中的内核支持 Docker. Docker 运行在 CentOS 7 上,要求系统为64 ...
- Scala传名参数(By-Name)
1.=> 在了解Scala的By-Name参数之前,先了解下“=>”在Scala中有几种用法: 1.对于值,“=>”相当于lambda表达式.如: scala> List(,, ...
- 【ZZ】谈谈持续集成,持续交付,持续部署之间的区别
谈谈持续集成,持续交付,持续部署之间的区别 http://blog.flow.ci/cicd_difference/ 谈谈持续集成,持续交付,持续部署之间的区别 2016年08月03日 标签:beta ...
- 廖雪峰Java4反射与泛型-1反射-4调用构造方法
1.Class.newInstance()只能调用public的无参数构造方法 public class Main { public static void main(String[] args) t ...
- solusvm安装过程
openvz solusvm ** Testing connectivity PING solusvm.com (69.168.233.94) 56(84) bytes of data. 64 byt ...
- [UE4]Datasmith
Datasmith 是帮助您将内容导入到虚幻引擎4中的一组工具和插件. 作为虚幻工作室产品的部分,Datasmith设计用于解决非游戏行业人士所面临的独特挑战,例如建筑.工程.建造.制造.实时培训等行 ...
- C#连接数据库最基本操作之sql语句 DML
C#连接数据库最基本操作之sql语句 DML //1 连接字符串 string connectionString = "server=127.0.0.1;integrated securit ...
- vue-生存周期
beforeCreate 实例初始化之后 created 实例创建之后 beforeMount 实例挂载前 文本节点 mounted 渲染实例 防止花括 ...
- cordova 常用操作
#创建插件 plugman create --name MyMath --plugin_id SimpleMath --plugin_version #进入插件目录 cd MyMath #plugin ...
- ZooKeeper的安装和API
Zookeeper的分布式安装和API介绍: 安装教程 在datanode1.datanode2和datanode3三个节点上部署Zookeeper. 步骤 解压zookeeper安装包到/opt/m ...