面向对象之定制对象独有属性+属性查找+绑定方法day20
1、为对象定制独有特征__init__
对象的本质就是一个名称空间而已,对象名称空间是用来存放对象自己独有的名字/属性,而类中存放的是对象共有的属性
调用时发生两件事:
a、创建一个空对象stu1
b、自动触发类中__init__功能执行,将stu1以及调用类括号中的参数一同传入
2、属性查找
先从对象自己的名称空间中找,没有则去类中找,如果类也没有则报错
3、绑定方法
类名称空间中定义的数据属性和函数属性都是共享给所有对象用的。
对象名称空间中定义的只有数据属性,而且是对象所独有的数据属性。
类中定义的函数是类的函数属性,类可以使用,但使用就是一个普通的函数而已,意味着需要完全遵守函数的参数规则,该传几个值就传几个值
类中定义的函数是共享给所有对象的,对象也可以使用,而且是绑定给对象使用的
绑定效果:绑定给谁就由谁来调用,谁调用就会将谁当作第一个参数自动传入
注:类中定义的函数,类确实可以用,但是其实大多数情况下都是绑定给对象用的,所以,在类中定义函数都应该自带一个参数self
4、小结
强调:python3中统一了类和类型的改下,类就是类型
对象是一个高度整合的产物,整合数据与专门操作该数据的方法(绑定方法)
强调对象的精髓:
对象不仅包含一系列数据(自己独有的和大家共有的)还包含专门操作该数据的方法