摘要: # 描述符,相当于一个代理 class Str: def __init__(self,name): self.name = name # 取值操作时使用 # instance:传入对象 # owner:对象的类 def __get__(self, instance, owner): print("get >",instance,owner) # 返回对象的name属性 return instanc 阅读全文
posted @ 2019-08-18 14:32 月为暮 阅读(142) 评论(0) 推荐(0) 编辑
摘要: class School: def __init__(self,name,addr,type): self.name=name self.addr=addr self.type=type def __repr__(self): return 'School(%s,%s)' %(self.name,self.addr... 阅读全文
posted @ 2019-08-18 12:14 月为暮 阅读(188) 评论(0) 推荐(0) 编辑
摘要: # class Foo: # def __init__(self,x): # self.x = x # def __getattr__(self,item): # print("__getattr__") # # return self.__dict__[item] # def printer(self): # print("lsdajfl") # # f1 = Foo(10) # print(f 阅读全文
posted @ 2019-08-18 12:02 月为暮 阅读(152) 评论(0) 推荐(0) 编辑
摘要: class Foo: x = 1 def __init__(self,y): self.y = y def __getattr__(self,item): print(" >from getattr:你找的属性不存在") def __setattr__(self,key,value): print(' > from setattr') # self.key = value # 这样就无限递归 # 阅读全文
posted @ 2019-08-18 12:00 月为暮 阅读(129) 评论(0) 推荐(0) 编辑
摘要: # 反射主要是程序可以访问,监测和修改它本身状态或行为的一种能力(自省)。 # 四个可以实现自省的函数 # hasattr(object,name) 判断object中有没有一个name字符串对应的方法或者属性 #getattr(obj, attr,default = None): # 调用这个方法将返回obj中名为attr值的属性的值,例如如果attr为'bar',则返回obj.bar。 # 没 阅读全文
posted @ 2019-08-18 11:00 月为暮 阅读(131) 评论(0) 推荐(0) 编辑