python学习手册笔记--第25,28,30,32章

第25章
class C1(C2, C3):...        C2,C3是超类
I1 = C1()    实例
有些类的属性实在调用函数时生成的

__init__()类的初始化函数    python的多太是基于函数接口的

第28章    类代码编写细节
class语句是对象的创建者
附加在类上的变量是共享的,附加在实例上的变量是特有的
instance.method(args...)自动转化为class.method(instance, args...)
写几个__init__自动调用最后一个
子类也可以调用超类方法进行扩展
抽象超类,填空函数,超类函数可以回调子类函数,每次都是启用一个新的搜索树
对未覆盖的填空函数,抛出异常raise NotmplementedError('')
抽象超类--头部使用关键字,@装饰器
类的.__bases__显示其继承的超类
第29章    运算符重载
__getitem__        索引
__setitem__        分片
买一送一有了索引的方法会自动迭代
__iter__优先级高于__getitem__
__contains__成员测试函数    优先级高于iter
__getattr__     重载点运算符    接受未定义的attrname
__setattr__     赋值语句        拦截所有的.XX赋值语句    避免递归利用.__dict__[xx]=**
__getattribute__        拦截所有的属性获取
__str__的优先级高于__repr__        只用于print和str()
__repr__的范围更广
__radd__    右加法    1+x        __iadd__    x += 1
当调用实例时,使用__call__方法    API编写接口很有用    第三常用重载
__bool__优先级高于__len__
__del__空间被回收时自动调用,重新赋值也是空间回收

第30章    类的设计
oop和继承:"是一个"的关系
oop和组合:"是有一个"的关系
oop和委托:"包装"对象    __getattr__实现,钩子        getattr(x,name)===x.name
伪私有属性    __X自动变成_**class__X    继承多个超类时可以避免隐藏
3.0中允许无绑定方法成为函数,即不用传实例,但是类中定义也不能传self
3.0中属性搜索处理沿着树层级、以更加广度优先的方式进行
class头部从左->右
第31章     类的高级主题
3.0中都是新式类,都派生自object,广度优先搜索
__slots__=[],把属性限定在slots中,防止打字错误,并且没有__dict__属性
特性 name = property(getname,setname,delname,docsname)可以用none代替
x.name调用getname    x.name=**调用setname
特性有时可以替代__getattr__和__setattr__
静态方法    类方法        比较混乱
装饰函数    增加一层逻辑        系统内置staticmethod
class C:                    <===>        class C:
    def meth():                                @**
    ......                                    def meth():
    meth = **(meth)                            ......
写一个装饰函数,__init__接受函数的名字,__call__接受函数参数
类装饰器和元类,有所重合,class C(methclass=Meta):    元类重新定义__init__    __new__

第32章    异常基础
try:
    ***
except XXError:
    print
捕获产生的异常,而非调用标准的异常处理
try/finally        捕捉异常后运行结束语句,确保终止语句发生
第33章    异常编码细节
try/except/else        只有在try块中无异常才执行else
try/except/else/finally
raise <instance>/<class>    可以显示触发异常    异常是实例
assert <test>, <data>    如果test为假,会触发异常,并显示data(data可选)
用于收集用户定义约束条件
with/as        木有看....= =!





猜你喜欢

转载自blog.csdn.net/cx351864995/article/details/7295995
今日推荐