博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第十三章、元类(metaclass)
阅读量:5292 次
发布时间:2019-06-14

本文共 740 字,大约阅读时间需要 2 分钟。

目录

第十三章、元类(metaclass)

一、什么是元类

  • 在python中一切皆对象,那么我们用class关键字定义的类本身也是一个对象,负责产生该对象的类称之为元类,即元类可以简称为类的类

    class Foo:  # Foo=元类()    pass

    114-åç±»metaclass-ç±»çå建.png?x-oss-process=style/watermark

二、为什么用元类

  • 元类是负责产生类的,所以我们学习元类或者自定义元类的目的:是为了控制类的产生过程,还可以控制对象的产生过程

  • 本质:

  • exec()

    l={}exec('''school='oldboy'def __init__(self,name):    self.name=namedef score(self):    print('分数是100')''',{},l)def __init__(self,name):    self.name=namePerson=type('Person',(object,),{'school':'oldboy','__init__':__init__})#class 底层就是调用type来实例化产生类(对象)

    img

  • 补充#exec() eval()的区别

  • f = "3+6+9+8"s = eval(f)print(s)--------------------------26
  • code = '''def func():    print('test')    return 555func()'''f = exec(code)print('---'*5)print(f)-------------------------------test---------------None

转载于:https://www.cnblogs.com/demiao/p/11456236.html

你可能感兴趣的文章
数组去重一步到位
查看>>
HDU 4671 Backup Plan 构造
查看>>
linux下编译openjdk8
查看>>
【python】--迭代器生成器装饰器
查看>>
Pow(x, n)
查看>>
安卓当中的线程和每秒刷一次
查看>>
MySQL Proxy
查看>>
关于Vue的组件的通用性问题
查看>>
随机颜色值
查看>>
每日一库:Modernizr.js,es5-shim.js,es5-safe.js
查看>>
目录相关的操作
查看>>
解决虚拟机vmware安装64位系统“此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态”的问题...
查看>>
C++----练习--引用头文件
查看>>
11.基本包装类型
查看>>
ajax连接服务器框架
查看>>
wpf样式绑定 行为绑定 事件关联 路由事件实例
查看>>
利用maven管理项目之POM文件配置
查看>>
用HttpCombiner来减少js和css的请问次数
查看>>
FUSE-用户空间文件系统
查看>>
将tiff文件转化为jpg文件并保存
查看>>