#__setattr__ 赋值方法,即一旦遇到self.name=name,就会执行__setattr__方法#__delattr__ 删除方法,一旦遇到del self.name,就会执行__delattr__方法#__getattr__ 查询方法,一旦遇到res=self.name,取res的值 ...
分类:
其他好文 时间:
2017-04-24 19:45:13
阅读次数:
213
一 __setattr__,__delattr__,__getattr__ class Foo: def __init__(self,x): self.name=x def __setattr__(self, key, value): # if not isinstance(value,str): ...
分类:
编程语言 时间:
2017-04-24 19:05:28
阅读次数:
174
class Foo: x=1 def __init__(self,y): self.y=y def __getattr__(self, item): print('----> from getattr:你找的属性不存在') def __setattr__(self, key, value): pri... ...
分类:
其他好文 时间:
2017-04-24 17:17:36
阅读次数:
155
这个Attr系列是egon老师自创的,个人还是可以接受这种文化底蕴的,所以直接拿来用,也是毫无违和感的 所谓Attr系列,其实是__setattr__,__delattr__,__getattr__ 三个函数,从名字中可以看出来这是一套设置,删除,查询的函数,那我们来一个一个的看: __setatt ...
分类:
编程语言 时间:
2017-04-24 17:14:01
阅读次数:
404
一.什么是反射?反射,又被称为自省,主要是指程序本身可以访问,检测,和修改“自己”,状态或行为的一种能力。二.python是如何体现这种反射机制的?通过字符串去操作对象相关的属性,python中,一切皆对象,所有的地方都可以用到反射。python内部提供了四个实现反射(自省)..
分类:
编程语言 时间:
2017-04-20 12:14:55
阅读次数:
185
本节内容 1、isinstance(obj,cls)和issubclass(sub,super) 2、反射 3、__setattr__,__delattr__,__getattr__ 1、isinstance(obj,cls) 检查obj是否是类 cls 的对象 2、issubclass(sub, ...
分类:
编程语言 时间:
2017-03-09 20:11:43
阅读次数:
261
通过字符串的形式导入模块 通过字符串的形式,去模块中寻找制定的函数,并执行getattr(模块名,函数名,默认值) 通过字符串的形式,去模块中设置东西setattr(模块名,函数名/变量名,lambda表达式/变量值) 通过字符串的形式,去模块中删除东西delattr(模块名,函数名) 根据字符串的 ...
分类:
编程语言 时间:
2017-02-23 00:04:36
阅读次数:
259
镇场诗: 诚听如来语,顿舍世间名与利。愿做地藏徒,广演是经阎浮提。 愿尽吾所学,成就一良心博客。愿诸后来人,重现智慧清净体。——————————————————————————————————————————code: result: ———————————————————————————————— ...
分类:
编程语言 时间:
2017-01-20 23:15:52
阅读次数:
244
镇场诗: 诚听如来语,顿舍世间名与利。愿做地藏徒,广演是经阎浮提。 愿尽吾所学,成就一良心博客。愿诸后来人,重现智慧清净体。——————————————————————————————————————————code: result: ———————————————————————————————— ...
分类:
编程语言 时间:
2017-01-19 22:45:39
阅读次数:
485
python里面跟getattr相关的有hasattr,setattr,delattr ,那么我们通过下面的例子,来详细的说说他们的用法。 一. hasattr(object,name) bool 判断object中是否具有name属性,例如: foo = Xiaorui() hasattr(foo ...
分类:
编程语言 时间:
2017-01-10 20:56:29
阅读次数:
189