随笔分类 -  Python

摘要:借助list class SimplexNode: def __init__(self,item,prev=None,post=None): self.item=item self.prev=None self.post=None def __repr__(self): # return 'item 阅读全文
posted @ 2020-10-08 15:34 ascertain 阅读(180) 评论(0) 推荐(0) 编辑
摘要:实现StaticMethod,完成staticmethod装饰器功能 实现ClassMethod,完成classmethod装饰器功能 class StaticMethod: def __init__(self,fn): print('StaticMethod Init') self.fn=fn d 阅读全文
posted @ 2020-10-07 22:54 ascertain 阅读(146) 评论(0) 推荐(0) 编辑
摘要:运行时,区别于编译时,指的是程序被加载到内存中执行的时候 反射,reflection,指的是运行时获取类型定义的信息 一个对象能够在运行时,像找镜子一样,反射处其类型信息 在Python中,能够通过一个对象,找出其type,class,attribute,method的能力,称为反射或自省 具有反射 阅读全文
posted @ 2020-10-07 12:59 ascertain 阅读(163) 评论(0) 推荐(0) 编辑
摘要:文件I/O操作可以对文件对象使用上下文管理,使用with as语法 with open('file') as f: pass 上下文管理对象 当一个对象同时实现了__enter__()和__exit__()方法,就属于上下文管理对象 __enter__进入与此对象相关的上下文,如果存在该方法,wit 阅读全文
posted @ 2020-10-06 20:06 ascertain 阅读(157) 评论(0) 推荐(0) 编辑
摘要:类思想实现 class Fabonacci: def __init__(self): self.b=[1,1] # 缓存计算结果 def __call__(self,p): if p <= len(self.b): # 判断是否已经计算过 return self.b[p-1] for v in ra 阅读全文
posted @ 2020-10-06 15:46 ascertain 阅读(163) 评论(0) 推荐(0) 编辑
摘要:def vix(): print(vix.__module__,vix.__name__) vix() == vix.__call__() 对象vix加上(),就是调用对象的__call__()方法 定义一个类,实例化得到实例,将实例像函数一样调用 def viz(*args): print(arg 阅读全文
posted @ 2020-10-06 02:24 ascertain 阅读(94) 评论(0) 推荐(0) 编辑
摘要:__len__内建函数len(),返回对象的长度(>=0),把对象当作容器类型看,如同list或dict,bool()函数调用的时候,如果没有__bool__()方法,则会看__len__()方法是否存在,存在返回非0为真 __iter__ 迭代容器时调用,返回一个新的迭代器对象 __contain 阅读全文
posted @ 2020-10-06 01:09 ascertain 阅读(110) 评论(0) 推荐(0) 编辑
摘要:operator模块提供一下特殊方法,可以将类的实例使用下面的操作符来操作 运算符 特殊方法 含义 <,<=,==,>,>=,!= __lt__,__le__,__eq__,__gt__,__ge__,__ne__ 比较运算符 +,-,*,/,%,//,**,divmod __add__,__sub 阅读全文
posted @ 2020-10-05 23:22 ascertain 阅读(100) 评论(0) 推荐(0) 编辑
摘要:__bool__ 内建函数bool(),或者对象放在逻辑表达式的位置,调用这个函数返回布尔值,没有定义__bool__(),就找__len__()返回长度,非0为真,如果__len__()也没有定义,所有实例都返回真 class B:pass print(bool(B())) class C: de 阅读全文
posted @ 2020-10-05 17:41 ascertain 阅读(101) 评论(0) 推荐(0) 编辑
摘要:__hash__: 内建函数hash()调用的返回值,返回一个整数,如果定义这个方法该类的实例就可hash class M: b=899 def __init__(self): self.hy=44 pass def __hash__(self): return 89 # __hash__=None 阅读全文
posted @ 2020-10-05 16:00 ascertain 阅读(244) 评论(0) 推荐(0) 编辑
摘要:__name__ 类,函数,方法的名字 __module__ 类,函数,方法所在的模块名 __class__ 类,对象,函数所属的类所有的函数和方法均属于<class 'function'> def bnm():pass class P: def uo(self):pass print(bnm.__ 阅读全文
posted @ 2020-10-05 14:18 ascertain 阅读(208) 评论(0) 推荐(0) 编辑
摘要:p='''bottle\r\nbag\r\nbig\napple''' import re regex=re.compile(r'\bb(?P<middle>\w)(?P<tail>g)') mat=regex.finditer(p) print(mat) for m in mat: print(m 阅读全文
posted @ 2020-10-05 13:51 ascertain 阅读(1232) 评论(0) 推荐(0) 编辑
摘要:class SimplexNode: def __init__(self,value,post=None,prev=None): self.value=value self.post=post self.prev=prev def __repr__(self): # return 'Node: {} 阅读全文
posted @ 2020-10-05 02:53 ascertain 阅读(165) 评论(0) 推荐(0) 编辑
摘要:class Document: def __init__(self,content): self.t=content def print(self): print(self.t) class Pdf(Document):pass class PrintableMixin: def print(sel 阅读全文
posted @ 2020-10-04 14:57 ascertain 阅读(133) 评论(0) 推荐(0) 编辑
摘要:class Animal: __ORE= 'Animal ore' @classmethod def getore(cls): # 由于是私有属性,所以此处的cls.__ORE已经被解释器替换成cls._Animal_ORE print('class: {}\tclassORE: {}'.forma 阅读全文
posted @ 2020-10-04 14:24 ascertain 阅读(1400) 评论(0) 推荐(0) 编辑
摘要:import math class Shape: @property def area(self): raise NotImplementedError('Base class not implemented') class Triangle(Shape): def __init__(self, a 阅读全文
posted @ 2020-10-04 13:38 ascertain 阅读(272) 评论(0) 推荐(0) 编辑
摘要:class Oar: def __init__(self,oar): self.o=oar def print(self): print(self.o) # print 不会到class Oar下面找,除非引用self.print def decorator(cls): def _print(sel 阅读全文
posted @ 2020-10-04 13:36 ascertain 阅读(388) 评论(0) 推荐(0) 编辑
摘要:def printable(): def wrapper(cls): cls.print=lambda self:print(self.content) return cls return wrapper @printable() # 先调用生成wrapper Word=wrapper(Word) 阅读全文
posted @ 2020-10-03 21:39 ascertain 阅读(210) 评论(0) 推荐(0) 编辑
摘要:OCP原则:多继承,少修改 继承的用途:增强基类,实现多态 多态 在面向对象中,父类和子类通过继承联系在一起,如果可以通过一套方法,就可以实现不同表现,就是多态 一个类继承自多个类就是多继承,他将具有多个类的特征 class Document: def __init__(self,content): 阅读全文
posted @ 2020-10-03 18:56 ascertain 阅读(354) 评论(0) 推荐(0) 编辑
摘要:class A: def __init__(self,a): self.a=a class B(A): def __init__(self,b,c): self.b=b self.c=c def printv(self): print(self.b) print(self.a) f=B(200,30 阅读全文
posted @ 2020-10-03 18:00 ascertain 阅读(193) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示