python教程重点回顾-2-面向对象的编程
##面向对象高级编程
###使用_slots_
因为动态绑定的原因,如果需要在类的定义中添加限制对某些对象的添加可以使用_slots_
这里只允许添加name
,age
属性
###使用@property
类似于其他高级语言中的get、set
上面的birth
是可读写属性,而age
就是一个只读属性
###多重继承
python支持多重继承
###定制类
- getitem,使用属性访问器的方式访问对象内的元素
###使用元类
使用type()
方法创建对象,而不用定义类
要创建一个class对象,type()函数依次传入3个参数:
1.class的名称;
2.继承的父类集合,注意Python支持多重继承,如果只有一个父类,别忘了tuple的单元素写法;
3.class的方法名称与函数绑定,这里我们把函数fn
绑定到方法名hello
上。
类可以看成是metaclass创建出来的“实例”
为自定义的类添加一个add
方法
当我们写下__metaclass__ = ListMetaclass
语句时,魔术就生效了,它指示Python解释器在创建MyList时,要通过ListMetaclass.__new__()
来创建,在此,我们可以修改类的定义,比如,加上新的方法,然后,返回修改后的定义。
new()方法接收到的参数依次是:
1.当前准备创建的类的对象;
2.类的名字;
3.类继承的父类集合;
4.类的方法集合。
参考:python教程