首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

干货分享 Python进阶之浅谈Python 面向切面编程与元类

在 Python中,实例对象是由类生成的,而类本身也是可以被传递和自省的对象。那么类对象是用什么创建和生成的呢?答案是元类,元类就是一种知道如何创建和管理类的对象。

让我们回顾一个内置函数type(),type不仅可以返回对象的类型,而且可以使用类名称、基类元组、类主体定义的字典作为参数来创建一个新类对象:

python 3以后,默认的元类皆为type了,显式定义元类的时候需要在基类元组中提供metaclass关键字,class Foo(metaclass=type)如此定义。推荐一个我的python学习裙 五八八零九零九四二 大家一起进来交流讨论,讲实话还是一个非常适合学习的地方的。各种入门资料啊,进阶资料啊免费领取。

使用元类的时候,一般会自定义一个继承自type的子类,并重新实现init()与new()方法:

另外一个可行的方法就是使用元类了:

元类的一个主要用途就是检查收集或者更改类定义的内容,包括类属性、类方法、描述符等等。

元类与基类

元类中除了可以定义init和new方法外,还可以定义其它的属性和方法:

属性访问是这样的:

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180108A0C3UP00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券