当前位置: 首页 > news >正文

长沙企业建网站费用网站建设图片设置

长沙企业建网站费用,网站建设图片设置,小型手机网站建设推荐,wordpress 多久元类#xff08;metaclass#xff09;是 Python 中一个高级且相对较少使用的概念。元类可以被视为类的类#xff0c;它控制类的创建过程。 一、基本概念 在 Python 中#xff0c;一切皆对象。为了避免混淆#xff0c;我们约定两个术语#xff1a; 类实例#xff1a;当…元类metaclass是 Python 中一个高级且相对较少使用的概念。元类可以被视为类的类它控制类的创建过程。 一、基本概念 在 Python 中一切皆对象。为了避免混淆我们约定两个术语 类实例当我们定义一个类时实际上是在创建一个对象这个对象就是类本身我们将类本身这个对象称为 类实例。 类的实例我们将使用类创建的实例称之为 类的实例。 生活化的例子 我们可以将 元类 理解为 制作蛋糕模具的机床将 类 理解为 制作蛋糕的模具。制作蛋糕模具是元类创建的 类实例蛋糕 是蛋糕模具创建的 蛋糕类的实例。 二、基本原理 元类 控制 类实例 的创建过程其中 __new__ 方法用于创建 类实例而 __init__ 方法用于初始化这个 类实例。 类 控制 类的实例 的创建过程其中 __new__ 方法用于创建 类的实例而__init__方法用于初始化这个 类的实例。 三、核心作用 元类的核心作用是控制类的创建过程允许我们在类被实际创建之前修改它这使得我们可以在类级别上进行高级的定制例如添加额外的属性、修改类的行为等。 四、Demo 示例 示例 1简单的元类 class SimpleMeta(type):registered_classes []def __new__(cls, name, bases, dct):创建类实例print(Generate new instance)return super().__new__(cls, name, bases, dct)def __init__(cls, name, bases, dct):初始化类实例print(Init new instance)super().__init__(name, bases, dct)SimpleMeta.registered_classes.append(cls)class MyClass1(metaclassSimpleMeta):passprint()class MyClass2(metaclassSimpleMeta):passprint()print(fRegistered classes: {SimpleMeta.registered_classes}) 输出结果 Generate new instance Init new instanceGenerate new instance Init new instanceRegistered classes: [class __main__.SimpleMeta, class __main__.SimpleMeta]示例说明 元类 SimpleMeta 中的 __init__ 方法在 __new__ 方法执行后被调用用于收集已注册的类的信息展示了元类的实际用途。示例 2蛋糕模具定制 class ShapeMeta(type):def __new__(cls, name, bases, dct):# 获取类的名称并根据不同的类名进行定制if name RoundCake:# 定制化操作dct[shape] Roundif name TriangleCake:# 定制化操作dct[shape] Trianglereturn super().__new__(cls, name, bases, dct)class RoundCake(metaclassShapeMeta):passclass TriangleCake(metaclassShapeMeta):passmy_round_cake RoundCake() my_triangle_cake TriangleCake()print(my_round_cake.shape) # 输出 Round print(my_triangle_cake.shape) # 输出 Triangle输出结果 Round Triangle示例说明 元类 ShapeMeta 根据类的名称控制类的形状属性这里可以看出元类对类创建过程的控制。综合示例面向切面编程 import functoolsdef listening(func):functools.wraps(func)def wrapper(self, *args, **kwargs):print(fdo something before calling function {func.__name__})result func(self, *args, **kwargs)print(fdo something after calling function {func.__name__})return wrapperclass ListeningMeta(type):def __new__(cls, name, bases, dct):for key, value in dct.items():if callable(value) and not key.startswith(__):dct[key] listening(value)return super().__new__(cls, name, bases, dct)class MyClass(metaclassListeningMeta):def __init__(self, data):self._data datapropertydef data(self):print(self._data)return self._datadef do_somthing(self):print(fdo_somthing with {self._data})a MyClass(1) a.data a.do_somthing()输出结果 1 do something before calling function do_somthing do_somthing with 1 do something after calling function do_somthing示例说明 元类 ListeningMeta 展示了元类如何用于在不修改原始类代码的情况下添加额外的行为实现面向切面编程的效果。五、要点小结 元类是类的类用于控制类实例的创建过程和初始化过程。__new__ 用于创建类实例__init__ 用于初始化实例。元类的主要作用是允许在类被创建之前修改它如添加属性、修改行为。元类适用于对类创建过程进行深度干预的特殊需求对于大多数情况普通类定义和继承已经足够元类提供额外的灵活性。
http://www.hkea.cn/news/14476663/

相关文章:

  • 建网站开源代码wordpress 爱主题
  • 个人网站备案网址导航app运营岗位职责
  • 宁夏交通建设股份有限公司网站北京微信网站设计报价
  • 黑别人网站官网首页设计
  • 住房建设建设部网站网站上社保做增员怎么做
  • 海淀做网站设计的公司wordpress 新建主题
  • 软件下载网站排行榜长沙网站制
  • 广州做网站星珀为什么要建设个人网站
  • 网站管理助手 伪静态公众号开发哪家专业
  • 技术支持 深圳网站建设贝尔利广州百度关键词排名
  • 我想做一个网站怎么办深圳做自适应网站设计
  • html网站注册页面全国十大教育机构
  • wordpress 招聘网站模板上海公共场所
  • 房地产景区网站建设方案网页制作作业网站
  • 一个网站项目多少钱简单的页面
  • 怎么创办自己的网站邻水建设局网站
  • 网站开发硬件成本制作网站设计的总结
  • 哪个网站可以做兼职ppt北京的网站建设
  • 建设网站全部流程wordpress is电影主题
  • 六枝做网站网站内容维护费用
  • 中国做铁塔的公司网站qq群推广平台
  • 周口哪里做网站分阶段建设网站
  • 巩义做网站贵阳网站制作策划
  • 佛山建设网站小企业网站 优帮云
  • 专门做捷径网站帝国cms更改网站ico
  • 苏州专业设计网站聊城 网站制作
  • 做贸易网站layui加入wordpress
  • 网站开发费用做账完整个人网站html
  • 网站功能是什么找合作项目app平台
  • 做动漫短视频网站漳州网站开发