一.反射定义放射是指程序可以访问。检测和修改它本身状态或行为的一种能力(自省)。二.四个自省的函数Python中提供了以下四种自省的函数,使用于类和对象。1.hasattr函数--用于判断obj中有没有name字符串对应的方法或属性,若有返回Ture,若无则返回False。格式:hasattr(obj,name)2.getattr--用于获取obj中name字符串的地址,若有返回内置地址,若无则报
分类:
编程语言 时间:
2018-04-30 22:10:22
阅读次数:
179
什么叫做反射 利用字符串的形式去对象(模块)中操作(查找/添加/获取/删除)成员,一种基于字符串的事件驱动。 可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性。 函数简介 ~~~~ hasattr( args, kwargs) ...
分类:
编程语言 时间:
2018-04-30 15:39:11
阅读次数:
216
内置方法 isinstance 只能判断是否为父子类的关系 不能判断爷爷和孙子的关系(False) issubclass 判断是否有继承关系 只要有继承关系都为真 反射 类中反射 对象反射 模块反射 自己反射 getattr和hasattr 增删改对象的属性,和类的属性增删改 setattr del ...
分类:
其他好文 时间:
2018-04-27 12:26:51
阅读次数:
154
hasattr(object, name) 判断一个对象(object)是否存在name属性或方法,返回boolean值,有name属性返回True, 否则返回False getattr(object, name[, default]) 获取对象object的属性或方法(name), 如果存在打印出 ...
分类:
编程语言 时间:
2018-04-26 12:26:00
阅读次数:
193
复习: #反射 必须会,必须能看的懂,必须知道在哪儿用 #hasattr getattr setattr delattr 内置方法 必须能看懂 能用尽量用 __len__len(obj)的结果依赖于obj.__len()__的结果,计算对象的长度 __hash__ hash(obj)的结果依赖于ob ...
分类:
编程语言 时间:
2018-04-21 23:32:37
阅读次数:
201
今日主要内容 1.面向对象高级特性 反射 2.内置函数和内置方法补充 1.什么是反射: 通过内置函数getattr(),hasattr(),setattr(),delattr()实现,在类外通过对字符串的操作,能够将类内同名的静态变量,方法,如对象属性是无法取到值的. 也可以理解为: ***正常情况 ...
分类:
编程语言 时间:
2018-04-18 22:31:19
阅读次数:
205
1 封装的意义 2、封装与扩展性 3、Property 特征方法变成数据属性 4 绑定方法与非绑定方法 (1)绑定到对象 (2)绑定到类 (3)不绑定 5、如何使用? 6.反射 HASATTR \ getattr setattr 7 反射的应用 8/内置方法 http://www.cnblogs.c ...
分类:
其他好文 时间:
2018-03-17 14:16:50
阅读次数:
197
python的反射机制能够让我们利用字符串去动态的驱动不同的事件,例如导入模块,调用函数等,涉及到的函数有hasattr,getattr,setattr,delattr hasattr:检查模块或者对象中是否有某个成员 getattr:获取成员,即将字符串输入的数据装换成对应的成员 setattr: ...
分类:
编程语言 时间:
2018-03-10 11:51:24
阅读次数:
230
1 使用__new__方法 class Singleton(object): def __new__(cls, *args, **kw): if not hasattr(cls, '_instance'): orig = super(Singleton, cls) cls._instance = o ...
分类:
编程语言 时间:
2018-02-25 12:59:00
阅读次数:
228
反射就是根据提供的字符串,匹配对象(类、模块等)里面的方法。达到动态调用的目的。主要有四个成员。getattr、hasattr、setattr、delattr 获取成员、检查成员、设置成员、删除成员'''一个简单的例子'''
# 定义一个symbol类,有a,b,c三个方法。
class Symbol(object):
分类:
编程语言 时间:
2018-02-23 17:16:37
阅读次数:
194