class_name = 'User' # 定义类名 class_base = (object,) # 定义类的基类(即父类) class_attr = {} # 定义字典,用于存放类的方法和属性 # 以字符串的形式,书写类包含的方法和属性 class_body = ''' school = 'oldboy' def __init__(self,name): print(name) ''' exec(class_body,{},class_attr) # 使用exec方法,创建类的命名空间 # 通过往家type元类,创建一个User类 User = type(class_name,class_base,class_attr) #类名,类的基类(父类),类的命名空间 # 给User类实例化一个u对象 u = User('jason') # jason # u可以调用User类中的属性或方法. print(u.school) # oldboy
重点:使用元类,创建类时,要提供三个参数(类名,类的基类(父类),类的命名空间)!!!