类与对象
对象的本质也就是一个名称空间而已,用于存放自己独有的属性,而类中存放的是对象共有的属性。
__init__会在调用类时自动触发
调用类时发生两件事:
1.创建一个空对象stu1
2.自动触发__init__功能,将stu1以及括号内的参数一同传入
属性查找
先从对象自己的名称空间找,没有则去类中找
绑定方法
类中定义的函数是共享给对象的,而且是绑定给对象使用的
绑定的效果:绑定给谁,谁就来调用,谁调用就将谁当第一个参数
补充:类中定义的函数,类确实可以使用,但大多数是给对象用的,所以需要自带一个参数self
类即类型
python中一切皆为对象,且python3中类与类型是一个概念,类型就是类
#类型dict就是类dict
>>> list <class 'list'> #实例化的到3个对象l1,l2,l3 >>> l1=list() >>> l2=list() >>> l3=list() #三个对象都有绑定方法append,是相同的功能,但内存地址不同,ID相同 >>> l1.append <built-in method append of list object at 0x10b482b48> >>> l2.append <built-in method append of list object at 0x10b482b88> >>> l3.append <built-in method append of list object at 0x10b482bc8> #操作绑定方法l1.append(3),就是在往l1添加3,绝对不会将3添加到l2或l3 >>> l1.append(3) >>> l1 [3] >>> l2 [] >>> l3 [] #调用类list.append(l3,111)等同于l3.append(111) >>> list.append(l3,111) #l3.append(111) >>> l3 [111]
对象是高度整合的产物,整合数据与专门操作该数据的方法(绑定方法)
继承与派生
派生就是子类中新定义的属性,子类使用中以自己的为准
1.什么是继承
继承是一种新建类的方式,新建的类为子类,被继承的为父类
特征:子类会遗传父类的属性,继承是类与类之间的关系
2.为何要继承
减少代码的冗余
3.如何使用继承
支持一个类同时继承多个父类 class Foo(Parent): Parent即为父类
python3中,若没有继承任何的类,默认继承object类,2中不会默认继承
新式类:但凡继承了object的类及该类的子类,都是新式类
python3中的类都是新式类
经典类:没有继承object的类