摘要: 在类当中必须实现 __iter__ 方法, 在类当中必实实现 __next__方法, class Foo: def __init__(self): self.x=0 def __iter__(self): return self def __next__(self): self.x+=1 if se 阅读全文
posted @ 2020-12-15 15:58 leungqingyun 阅读(67) 评论(0) 推荐(0)
摘要: 1. 自定制property 初始版 利用 @语法,使类增加一个类属性, 然后利用描述符来实现 class lazyproperty: def __init__(self,func): self.func=func def __get__(self, instance, owner): print( 阅读全文
posted @ 2020-12-09 23:06 leungqingyun 阅读(69) 评论(0) 推荐(0)
摘要: # 利用对象装饰器和描述符组合来限定类实例属性的类型class Typed: def __init__(self,key,type): self.key=key self.type=type def __get__(self, instance, owner): print('__get__') r 阅读全文
posted @ 2020-12-07 22:57 leungqingyun 阅读(69) 评论(0) 推荐(0)
摘要: class MyOpen: def __init__(self,filename): self.filename=filename def __enter__(self): self.file = open(self.filename, 'r') data = self.file.read() pr 阅读全文
posted @ 2020-11-30 21:55 leungqingyun 阅读(50) 评论(0) 推荐(0)
摘要: 描述符是干啥的: 描述符本质上就是一个新式类,至少实现了 __get__() , __set__(), __delete__(), 这3个方法当中的一个。 描述符是用来代理另外一个类的属性的, 必须把描述符定义在另外一个类的属性当中,不能定义在构造函数里。 __get__调用属性触发 __set__ 阅读全文
posted @ 2020-11-27 22:49 leungqingyun 阅读(78) 评论(0) 推荐(0)
摘要: 1. __getattr__ class Foo: def __init__(self): self.x=123 """ item 为调用不存在的属性 该方法在对象调用不存在属性的时候触发执行 """ def __getattr__(self, item): print('__getattr__ ' 阅读全文
posted @ 2020-11-20 22:29 leungqingyun 阅读(111) 评论(0) 推荐(0)
摘要: 对象的反射,主要为 hasattr, getattr,setattr,delattr class Stocker: def __init__(self): self.name='1STK0100' self.fab='Array' def run(self): print('move cst') s 阅读全文
posted @ 2020-11-18 22:01 leungqingyun 阅读(53) 评论(0) 推荐(0)
摘要: 多态 class H2O: def __init__(self,name,temp): self.name=name self.temp=temp def run(self): if self.temp<=100: print('【%s】的温度是%s'%(self.name,self.temp)) 阅读全文
posted @ 2020-11-16 23:06 leungqingyun 阅读(72) 评论(0) 推荐(0)
摘要: 基本继承 class Dad: money=1000 def __init__(self,name): self.name=name def work(self): print('working') class Sun(Dad): """不写初始化方法默认继承父类的初始化方法""" pass s=S 阅读全文
posted @ 2020-11-13 23:00 leungqingyun 阅读(27) 评论(0) 推荐(0)
摘要: 属性: 1. 数据属性--变量 2. 函数属性--方法 类的属性基本操作 class Chinese: # 类属性 color = 'yellow' def __init__(self): pass def method(self): print('吹牛逼') # 1.查看类属性 Chinese.c 阅读全文
posted @ 2020-11-09 23:01 leungqingyun 阅读(229) 评论(0) 推荐(0)