一 成员修饰符
    公有成员
    私有成员, 字段名
        - 无法直接访问,只能间接访问
 
    class Foo:
        def __init__(self,name,age):
            self.name = name
            self.age = age
            self.__age = age
 
        def __str(self,name):
            self.name =
    obj = Foo()
    obj.name
    #obj.age
    obj.__age
 
 
 
二 特殊成员
    __init__  类()自动执行
    __call__  对象() 类()()  自动执行
    __int__   int(对象)
    __str__  str()
    __add__   对象相加自定义返回值
    __del__   析构方法,当对象被销毁时自动执行
    __dict__  将对象中封装的所有内容通过字典的形式返回
    __getitem__  切片(slice类型) 或者索引
    __setitem__
    __delitem__
    __iter__
                # 如果类中有 __iter__ 方法,对象 =>> 可迭代对象
                # 对象.__iter__()  的返回值: 迭代器
                # for 循环 , 迭代器 ,next
                # for 循环 ,可迭代对象,对象.__iter__(),迭代器 ,next
                # 1. 执行li对象的类F中的 __iter__方法,并获取其返回值
                # 2. 循环上一步中返回的对象
三 metaclass,类的祖宗
    a.Python中一切事物皆为对象
    b.
        class Foo:
            pass
        obj = Foo()
        # obj 是对象,Foo类
        # Foo 类也是一个对象,type的对象
    c.
        类都是type类的对象  type(..)
        "对象"都是以类的对象 类()
 
四 异常处理
    AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x
    IOError 输入/输出异常;基本上是无法打开文件
    ImportError 无法引入模块或包;基本上是路径问题或名称错误
    IndentationError 语法错误(的子类) ;代码没有正确对齐
    IndexError 下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5]
    KeyError 试图访问字典里不存在的键
    KeyboardInterrupt Ctrl+C被按下
    NameError 使用一个还未被赋予对象的变量
    SyntaxError Python代码非法,代码不能编译(个人认为这是语法错误,写错了)
    TypeError 传入对象类型与要求的不符合
    UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,
    导致你以为正在访问它
    ValueError 传入一个调用者不期望的值,即使值的类型是正确的
 
五 反射
    getattr() 取得对象的成员
 
 
 
 
 
 
 
六 单例模式
 
 
 
posted on 2021-01-23 18:59  VincentAdamNemessis  阅读(310)  评论(0编辑  收藏  举报