notes for lxf(四)

类名首字母通常大写 

创建实例 类名 +()

__init__方法 创建实例时把一些属性绑上去

__init__方法第一参数永远是self 表示船舰的实例本身

类是实例的模板 实例是一个一个具体的对象 各个实例拥有的数据都互相独立互不影响

私有变量 内部属性不能被外部访问 属性前有两个下划线__ 内部可以访问 外部不可以访问

__xxx__特殊变量是可以直接访问的 不是私有变量 

继承 

父类 超类 基类        子类

特点 子类获得了父类的全部功能 子类可以新增自己的方法 子类和父类有相同的方法时会覆盖父类的方法 

在继承关系中 如果一个实例的数据类型是一个子类 那么它的数据类型也可以看作是父类 反过来不行

多态

定义class时就相当于定义了一种数据类型

调用方只管调用 对扩展开放 对修改封闭

python的鸭子类型 并不要求严格的继承体系(静态语言 如果要传入一个类型 则传入的对象必须是这个类型或其子类)一个对象只要看起来像鸭子 走起路来像鸭子 就把它当作鸭子(意思是只要传入的这个对象实现了真正对象的方法)

type()查看对象类型 import ypes 判断一个对象是否是函数 isinstance()判断对象类型 dir()获得一个对象的所有属性和方法 测试对象属性hasattr() setattr() getattr()

实例的属性比类属性高 del obj.attr 删除实例属性 编程时实例属性和类属性不要使用相同的名字

实例属性属于各个实例所有 互不干扰  类属性属于类所有 所有实例共享一个属性

a.b 说明对象a有b的属性

 

上一篇:OSCP Learning Notes - Buffer Overflows


下一篇:tensorflow study HKUST day study notes