雅堂之家旗舰店,hi大足论坛,ios9.2.1
python class 通过内置成员dict 存储成员信息(字典)
首先用一个简单的例子看一下dict 的用法
class A(): def __init__(self,ax,bx): self.a = ax self.b = bx def f(self): print (self.__dict__) a = A(1,2) a.f()
输出结果:{‘b’: 2, ‘a’: 1}
简化成下面的代码
class Person: def __init__(self,_obj): self.__dict__.update(_obj)
我们可以通过重载getattr和setattr来拦截对成员的访问或者作出一些自己希望的行为
getattr 在访问对象访问类中不存在的成员时会自动调用
class A(): def __init__(self,ax,bx): self.a = ax self.b = bx def f(self): print (self.__dict__) def __getattr__(self,name): print ("__getattr__") a = A(1,2) a.f() a.x
输出结果
{'b': 2, 'a': 1} __getattr__
setattr 方法用于在初始化对象成员的时候调用,即在设置dict的item时就会调用setattr方法。 具体看下面的例子
class A(): def __init__(self,ax,bx): self.a = ax self.b = bx def f(self): print (self.__dict__) def __getattr__(self,name): print ("__getattr__") def __setattr__(self,name,value): print ("__setattr__") self.__dict__[name] = value a = A(1,2) a.f() a.x a.x = 3 a.f()
输出结果
__setattr__ __setattr__ {'a': 1, 'b': 2} __getattr__ __setattr__ {'a': 1, 'x': 3, 'b': 2}
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Python 实现将numpy中的nan和inf,nan替换成对应的均值
python爬虫把url链接编码成gbk2312格式过程解析
网友评论