Python自定义元类的实例讲解
作者:小妮浅浅 发布时间:2021-12-31 13:13:36
标签:Python,自定义元类
1、说明
一个类没有声明自己的元类,默认他的元类就是type,除了使用元类type,用户也可以通过继承type来自定义元类。
2、实例
我们可以使用类属性 __metaclass__ 把一个类的创建过程,转交给其它地方。
class A(object):
__metaclass__ = ... # 这个类的创建转交给其他地方
pass
先定义了类 A,然后定义了一个类属性 __metaclass__,这个属性表示创建类 A 的过程,转交给其它地方处理。
类属性 __metaclass__ 可以是一个方法,也可以是一个类。
内容扩展:
用元类创建类
前面讲到过,type 有一个作用是用于检查对象的类型,其实它还有另外一个作用就是作为元类动态地创建类(对象)。
>>> Person = type("Person", (), {"live":True})
>>> Person
<class '__main__.Person'>
Person 就是一个类,它等价于:
>>> class Person:
... live = True
...
>>> Person
<class '__main__.Person'>
用元类 type 创建类的语法是:
type(类名,基类元组(可以为空), 属性字典)
来源:https://www.py.cn/jishu/jichu/27876.html


猜你喜欢
- 最近需要用python打包一个单页面网页demo,于是准备用python包pyinstaller来打包程序。网上搜索了一下,大部分教程都是打
- 英文文档:locals()Update and return a dictionary representing the current l
- 前端代码要做到简洁易读、高效,还要考虑后端嵌套的方便性。前段时间做了一个导航,把整个制作过程重现,希望对大家有帮助。看到这样的导航,你会怎么
- ARP欺骗又称ARP毒化或ARP攻击,是针对以太网地址解析协议ARP的一种攻击技术,通过欺骗局域网内访问者PC的网关MAC地址,使访问者PC
- 说明1、字典中没有下标的概念,使用key值访问字典中对应的value值。当访问的key值不存在时,代码会报错。2、get('key&
- mysql在查询上千万级数据的时候,通过索引可以解决大部分查询优化问题。但是在处理上亿数据的时候,索引就不那么友好了。数据表(日志)是这样的
- <%Class Cls_TemplateDim RegDim PageDim CIDDim SIDDim RuleDim Conten
- 使用conda安装requirement.txt的扩展包当你在GitHub上下载了代码时,可以看到有一个requirements.txt文件
- KNN算法算是最简单的机器学习算法之一了,这个算法最大的特点是没有训练过程,是一种懒惰学习,这种结构也可以在tensorflow实现。KNN
- 不论你做什么样的设计,色彩都是一个不容忽视的问题。色彩以一种“隐蔽”的方式传达的各种信息,这些信息会影响观看者的心理和感受,左右他们的判断和
- SQL Server 2008支持四种协议,Shared Memory;TCP/IP;Named Pipes和Virtual Interfa
- 本文实例讲述了mysql共享锁与排他锁用法。分享给大家供大家参考,具体如下:mysql锁机制分为表级锁和行级锁,本文就和大家分享一下我对my
- 知道python有这几个内置方法,但一直以来用的都不多,最近重新看了一下,重新记录一下。map()会根据提供的函数对指定序列进行映射,pyt
- 环境:vue 2.9.3; webpack目的:接口的调用跨域方式:1、express中间的使用2、nginx代理3、谷歌浏览器跨域设置--
- 构建运动模糊模型现假定相机不动,图像f(x,y)在图像面上移动并且图像f(x,y)除移动外不随时间变化。令x0(t)和y0(t)分别代表位移
- 本文实例为大家分享了python实现打砖块小游戏的具体代码,供大家参考,具体内容如下开发益智的打砖块小游戏,你可以试一下能打几块import
- 1. 用Dreamweaver 4.0轻松设计会自动弹性调整的网页 首先需要保证的是你的页面内容采用了表格的格式,然后打开你要编辑的页面,按
- 原文:Unobtrusive Ajax。今天才看见的一个Presentation,是Jesse Skinner在06年10月发表的。虽然题目
- 在利用javascript内置的eval函数,将json格式的字符串转换成JS对象时,需要用一对"()"先将该字符串包住
- 1.操作系统:Windows7 64bitPython版本:3.8下载地址:https://www.python.org/downloads