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

网站建设涉及到哪些方面wordpress博客破解版

网站建设涉及到哪些方面,wordpress博客破解版,桓台县网站建设,外包公司是干嘛的问题 你想定义一个元类#xff0c;允许类定义时提供可选参数#xff0c;这样可以控制或配置类型的创建过程。 解决方案 在定义类的时候#xff0c;Python允许我们使用 metaclass关键字参数来指定特定的元类。 例如使用抽象基类#xff1a; from abc import ABCMeta, abstra…问题 你想定义一个元类允许类定义时提供可选参数这样可以控制或配置类型的创建过程。 解决方案 在定义类的时候Python允许我们使用 metaclass关键字参数来指定特定的元类。 例如使用抽象基类 from abc import ABCMeta, abstractmethod class IStream(metaclassABCMeta): abstractmethod def read(self, maxsizeNone): pass abstractmethod def write(self, data): pass 然而在自定义元类中我们还可以提供其他的关键字参数如下所示 class Spam(metaclassMyMeta, debugTrue, synchronizeTrue): pass 为了使元类支持这些关键字参数你必须确保在 __prepare__(), __new__()和 __init__()方法中 都使用强制关键字参数。就像下面这样 class MyMeta(type): # Optional classmethod def __prepare__(cls, name, bases, *, debugFalse, synchronizeFalse): # Custom processing pass return super().__prepare__(name, bases) # Required def __new__(cls, name, bases, ns, *, debugFalse, synchronizeFalse): # Custom processing pass return super().__new__(cls, name, bases, ns) # Required def __init__(self, name, bases, ns, *, debugFalse, synchronizeFalse): # Custom processing pass super().__init__(name, bases, ns) 讨论 给一个元类添加可选关键字参数需要你完全弄懂类创建的所有步骤 因为这些参数会被传递给每一个相关的方法。 __prepare__()方法在所有类定义开始执行前首先被调用用来创建类命名空间。 通常来讲这个方法只是简单的返回一个字典或其他映射对象。 __new__()方法被用来实例化最终的类对象。它在类的主体被执行完后开始执行。 __init__()方法最后被调用用来执行其他的一些初始化工作。 当我们构造元类的时候通常只需要定义一个 __new__()或 __init__()方法但不是两个都定义。 但是如果需要接受其他的关键字参数的话这两个方法就要同时提供并且都要提供对应的参数签名。 默认的 __prepare__()方法接受任意的关键字参数但是会忽略它们 所以只有当这些额外的参数可能会影响到类命名空间的创建时你才需要去定义 __prepare__()方法。 通过使用强制关键字参数在类的创建过程中我们必须通过关键字来指定这些参数。 使用关键字参数配置一个元类还可以视作对类变量的一种替代方式。例如 class Spam(metaclassMyMeta): debug True synchronize True pass 将这些属性定义为参数的好处在于它们不会污染类的名称空间 这些属性仅仅只从属于类的创建阶段而不是类中的语句执行阶段。 另外它们在 __prepare__()方法中是可以被访问的因为这个方法会在所有类主体执行前被执行。 但是类变量只能在元类的 __new__() 和 __init__()方法中可见。 以上就是Python如何定义有可选参数的元类的详细内容更多关于Python定义元类的资料请关注我们其它相关文章 本文标题: Python如何定义有可选参数的元类 本文地址: http://www.cppcns.com/jiaoben/python/329069.html
http://wiki.neutronadmin.com/news/380633/

相关文章:

  • 如何在网站上做用工登记龙岩做网站公司有哪些
  • 设计师查询网站免费贴图素材网站
  • 网站地图怎么提交wordpress 制作首页模板
  • 网站页面用什么软件做建设网站的实验报告
  • 晋江市规划局建设网站wordpress 开发 知乎
  • 成品网页网站房产信息网二手房
  • 17网站一起做网店睡衣最便宜手机网站建设
  • 网站建设全屏营销策划公司介绍
  • 烟台网站建设合肥公司wordpress不显示标题
  • 驻马店市旅游网站建设东莞视频网站制作
  • 阳谷网站建设网络推广火车头采集网站
  • 六安市公司网站建设大航母网站建设案例
  • 有了域名 怎么做网站平台建设网站公司
  • 如何做公证网站网页发布时间哈尔滨专业的制作网页
  • cnnic网站网站建设概括
  • 我的世界做封面网站宝应网站设计
  • 做h5的网站哪个好化妆品wordpress主题
  • 买别人做的网站能盗回吗杭州租车网站建设
  • 英雄联盟怎么做直播网站wordpress 大前端 插件
  • 网站建设文献综述知乎东莞网站建设服务
  • 网站运行速度慢的原因厦门哪些企业做视频网站的
  • flask做的购物网站我要开网店
  • 商品网站开发需求表百度搜索优化关键词排名
  • 深圳建站公司 企网站免费 free 服务器 终身 永久
  • 合肥知名网站建设公司公司网站域名怎么续费
  • 网站建设预算申请如何写投放广告网站
  • 陕西省西安市建设局网站加强网站和新媒体建设管理的意义
  • 网站开发部职责qq推广设置中心
  • 怎么样才能找到网站后台网址注册邮箱免费注册
  • 电商网站前端页面内容编写可以发布免费广告的平台