引言

1 面向对象编程是一种程序设计思想,把对象作为程序的基本单元,一个对象包含数据和操作数据的函数。

定义类

1 class MyClass(object):
object 表示从哪个类继承, 如果没有 就默认object,属于基类
2 init(self,…)方法
构造方法,若不定义,会默认生成一个无参的构造方法
3 构造方法 没有 重载, 只能调用最后定义的一个构造方法

深入类

1 在其他方法中,可以用 self.name 方式 来获取实例的 name属性
2 变量以开头,可以视作 private
3 同理,方法
开头 也可以视为 private

继承

1 class DerivedClass(BaseClass):

2 父类的构造方法不会被自动调用,需要子类手动调用
3 调用基类方法时需要加上 基类的 类名前缀

多重继承

1 python可以有多重继承,class DC(BC1, BC2, BC3):
2 若方法名相同,优先左边

获取对象信息

1 type()函数
type(A) == type(B), 判断类型是否相同
2 isinstance()函数
isinstance(dog,Animal) 判断是否属于继承关系
3 dir()函数
返回一个字符串的list,里面是一个对象的所有属性和方法

类的专有方法

在特定场合使用的方法,如init()
1 str
即to String print该对象的时候调用该函数
2 iter
for in的时候用,返回一个迭代对象, for循环不断调用该迭代对象的next方法
3 next
for循环的时候调用,直到 StopIteration错误出现
所以 raise StopIteration
4 getItem(self,n)
在取索引的时候调用,定义后可以通过取索引的方式 调用该函数
5 getattr(self, attr):
在获取对象不存在的属性的时候,可以通过该函数 动态返回值
6 call(self)
通过()来调用实例本身的时候 会调用这个 函数
这个函数还可以 定义参数列表