• 管理
  • day 38

    元类

    什么是元类

    class关键字定义的类本身是一个对象,负责产生该对象的类称之为元类(元类可以简称为类的类),内置的元类为type

    元类的作用

    元类可以帮我们控制类的创建

    怎么自定义创建元类

    • 自定义一个元类,继承type,派生出自己的属性与方法。
    • 给需要使用的类,通过metaclass指定自定义的元类
    # exec:三个参数
    # 参数一:包含一系列python代码的字符串
    # 参数二:全局作用域(字典形式),如果不指定,默认为globals()
    # 参数三:局部作用域(字典形式),如果不指定,默认为locals()
    
    # 可以把exec命令的执行当成是一个函数的执行,会将执行期间产生的名字存放于局部名称空间中
    
    g = {
        'x':1,
        'y':2
    }
    l={}
    
    exec{'''
    global x,z
    x = 100
    z = 200
    ''',g,l}
    
    print(g)	#  {'x': 100, 'y': 2, 'z': 200......}
    print(l)	#	{'m': 300}
    
    posted @ 2019-11-05 22:05  colacheng  阅读(88)  评论(0)    收藏  举报
    Live2D