使用元类,创建一个自定义类

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

 重点:使用元类,创建类时,要提供三个参数(类名,类的基类(父类),类的命名空间)!!!

posted @ 2019-08-23 18:54  去遇见最好的自己  阅读(275)  评论(0编辑  收藏  举报