python3 元类_宝贝步入Python3中的元类

python3 元类

我将通过讨论python类型系统的一些基础知识以及随后介绍META-CLASSES的概念来开始本课程。

首先,让我们看一下这些基本示例:

因此,您在python中创建的每件事都具有与之关联的类型。 在上面的示例中,变量名称的类型为strstring ),age类型的类型为intinteger ),但是这些变量中的每一个都具有__class__的属性或属性,在大多数情况下,我们在python中称呼魔术方法,该属性是在创建变量时实例化的类,换句话说,它是变量的类型。 因此,在这种情况下, type(name)name.__class__将返回与变量name strstring )相同的数据。

看到:

但是,这种想法也扩展到您自己创建的类。

看到:

根据示例,我们可以看到变量me的类型为User而该类型本质上是我们最初实例化的类,因此要创建新实例,请使用类名称以及预期的参数或参数,这些参数或参数将在以后成为关联的类型。 但是,类也具有与它们关联的类型。

看到:

因此, User类的类型为type ,这意味着类型类已使用其预期参数实例化,而python会负责创建类User 。 此外, type类采用的参数是(clsname,bases,methods) ,因此让我们看看它们在后台如何工作。

看到:

因此,本质上python所做的是,当您创建一个类时,它将采用clsname, bases and the functions or methods并将其提供给类type

那么为什么使用meta-classes ,事实证明,类type实际上是可以自定义和修改的东西。 问题是我们该怎么做。 我们修改类的方法是通过继承。 即

看到:

完成后,我认为我们已经准备就绪!!!! 所以我们去试驾

看到:

如我们所见,这几乎与类类型一样精确。 如果您注意到在使用我们创建的custom_type_class创建新类时,必须在制作该类之前先打印一些信息,这意味着该类是通过我们之前创建的custom_type_class创建的,因此,上面的类就是一个示例被称为META-CLASS

因此,一个元类的简单定义是:

监视或监督类定义中发生的情况的另一种方法

因此,python提供的是在类定义中使用上述方法的一种方法,即

基本上,创建一个类时的缺省参数metaclass的说法是类的type ,我们不希望出现这种情况,所以我们修改使用custom_class_type我们前面作为参数创建metaclass等于是该类User将与创建custom_class_type

结论

就这样! 您刚刚使用python学习了元类的基础知识,感谢后续! 如果您喜欢这个故事,请给这个故事几个React,以便更多的人看到它!

如果您喜欢这个,请给我买点东西:),如果您有任何疑问或任何疑问,请不要忘了发表评论。

您可以通过电子邮件kennethgabriel78@gmail.com与我联系。 谢谢您的时间再见:)。

翻译自: https://hackernoon.com/baby-steps-to-metaclasses-in-python3-xc4s249u

python3 元类

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值