深度剖析: 元类 ---生成---> 类 ---生成---> 对象
程序员文章站
2022-04-18 14:31:21
...
====================== 深度剖析: 元类 ---生成---> 类 ---生成---> 对象 ========================
元类定义代码
class Mymeta(type):
__instance = None
def __call__(self, *args, **kwargs):
super().__init__(class_name, class_bases, class_dic)
obj = self.__new__(self)
self.__init__(obj, *args, **kwargs)
return obj
元类 ----生成----> 类
class_name = 'Person'
class_bases = (object,)
class_dic = {}
class_body = '''
def __init__(self, name, age):
self.name = name
self.age = age
def show_info(self):
print(f'姓名:{self.name} 年龄:{self.age}')
'''
exec(class_body, {}, class_dic)
Person = Mymeta(class_name, class_bases, class_dic)
类 ---生成---> 对象:
p = Person('马林', 18)
p.show_info()