面向对象的高级编程
1、使用元类对象:元类对象是能在程序运行过程中执行的类,和普通class定义的类
是一样的。
2、使用type()函数进行动态生成元类。
def fn(self, name='world'): # 先定义函数
print('Hello, %s.' % name)
Hello=type('Hello',(objec,),dict(hello=fn))#创建Hello class
h=Hello()
h.hello()
type()函数传入3个参数:
1、class的名称
2、继承的父类集合,注意Python支持多重继承,如果只有一个父类,别忘了tuple的单元素写法
3、class的方法名称与函数绑定,这里我们把函数fn绑定到方法名hello上
面向对象绑定实例的属性和方法:
1、绑定实例的方法
form types import MethodType
s.set_age = MethodType(set_age,s)
需要绑定的类或实例.需要被绑定的方法=MethodType(方法名,类名/属性名)
2、给class中的实例都绑定方法
类名称.需要绑定的方法名=需要绑定的方法名
所有实例都可以调用该方法
面向对象使用_slots_只允许具体的类的实例添加属性
1、class Student(object):
_slots_=('name', 'age')
s.name='xxxx'
s.age='xxxxx'