问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

python中的元类是什么,它们用于什么?

发布网友 发布时间:2022-04-23 22:30

我来回答

1个回答

热心网友 时间:2022-04-06 06:55

元类是类的类。类定义类的实例(即对象)的行为,而元类定义类的行为。类是元类的实例。
虽然在Python中你可以对元类使用任意可调用对象(例如Jerub演示),但是更好的方法是使其成为实际的类。type是Python中常见的元类。type它本身是一个类,并且是它自己的类型。你将无法type纯粹使用Python 重新创建类似的东西,但是Python有点作弊。要在Python中创建自己的元类,你实际上只想将其子类化type。
元类最常用作类工厂。当你通过调用类创建对象时,Python通过调用元类来创建一个新类(执行“ class”语句时)。因此,与普通方法__init__和__new__方法结合使用,元类可以让你在创建类时做“额外的事情”,例如在某些注册表中注册新类或将其完全替换为其他类。
class执行该语句时,Python首先将class语句的主体作为普通代码块执行。生成的名称空间(字典)保留了将来类的属性。通过查看待定类的基类(继承了元类),待定类的__metaclass__属性(如果有)或__metaclass__全局变量来确定元类。然后使用该类的名称,基数和属性调用该元类以实例化它。但是,元类实际上定义了类的类型,而不仅仅是它的工厂,因此你可以使用它们做更多的事情。例如,你可以在元类上定义常规方法。这些元类方法就像类方法,因为它们可以在没有实例的情况下在类上调用,但是它们也不像类方法,因为它们不能在类的实例上被调用。type.__subclasses__()是type元类上方法的示例。你还可以定义正常的“魔力”的方法,如__add__,__iter__和__getattr__,执行或如何变化的类的行为。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
妇科的止血药有哪些 妇科用的止血药有哪些 妇科止血药的功效 人艰不拆是啥意思 汉酱51 度酱香型白酒多少钱?味道怎么样? 穿凉鞋可以穿袜子吗?凉鞋发黄怎么变白? 爱奇艺vip投屏限制怎么办 爱奇艺vip投屏视频限制怎么解决 支付宝怎样解除关联的支付宝账号? 剑圣叫什么名字 ...政策?这个政策的目的是什么?会对经济有什么影响? python中类的继承以及父类中的变量继承是如何使用的? 关于python中类的相关问题? python 继承与类属性的使用 python中是否有类,其作用是? python中“类”有什么用?为什么要使用类? 黎明杀机需要电脑什么配置 Grim dawn黎明恐怖职业 活死人黎明恐怖吗??? 有什么横版的电脑恐怖解密游戏 黎明杀机电脑上配置高吗 求一部很老很老的美国恐怖片(记得还是录像带的,那时候还没有VCD) 科学家在自己实验室被电脑程序杀死。 黎明杀机需要电脑什么配置? 活死人黎明恐怖系数高不高? 活死人黎明恐怖吗 还有没有类似直到黎明这种恐怖游戏? 活死人的黎明恐怖吗? 黎明恐怖 这个任务在那? 恐怖黎明炸药怎么得 炸药获得方法介绍 赫恩男士面膜补水美白去黑头祛痘印控油收缩毛孔 什么时候用合适 恐怖黎明有没有控制台 Python中的类与Java有什么不同? python中,怎么让类返回值啊? python怎么在一个类中调用另一个类的方法 python修饰器怎样在类的层次中使用 用热盐袋敷脚会不会发生便秘 有便意却拉不出来 可以用粗盐热敷小肚子吗? UC浏览器里面下载视频怎么操作? uc浏览器在哪里下载 个人征信有过逾期,请问还可以做手机分期付款吗? 买东西分期付款上征信吗,但是按时还完后对个人有什么影响吗 小米分期买手机会上征信吗? 花呗证信分期付款像银行影响贷款吗? 什么是光电转换? 光电转换过程的原理是什么? 光电转化原理是什么呢? 光电转换的原理是什么? 光电转换器件的原理是什么? 光电转换器的作用有哪些? 什么叫光电转换器?光电转换器有哪几种 说说吃剩的螃蟹怎么保存?