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  阅读(...)  评论(...编辑  收藏
Live2D