位置: 编程技术 - 正文

Python 类与元类的深度挖掘 II【经验】(python中的类怎样理解)

编辑:rootadmin

推荐整理分享Python 类与元类的深度挖掘 II【经验】(python中的类怎样理解),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python 元类的作用,python元类的概念,python 元类 详解,python元组类型,python元类的概念,python 元素类型,python中的类怎样理解,python 元素类型,内容如对您有帮助,希望把文章链接给更多的朋友!

  上一篇解决了通过调用类对象生成实例对象过程中可能遇到的命名空间相关的一些问题,这次我们向上回溯一层,看看类对象本身是如何产生的。

  我们知道 type() 方法可以查看一个对象的类型,或者说判断这个对象是由那个类产生的:

  通过这段代码可以看出,类对象 A 是由type() 产生的,也就是说 type 也可以用来产生新的对象,而且产生的是类对象,因此它是所有类对象的类:

  class 定义类的语法实际上转化为 type(name, bases, dict),其中 name 参数为类的名字,bases 为继承父类的元组,dict 为类的属性和方法:

  理论上说这就是元类的意义,但从实际的角度出发显然使用 class 语法更方便、合理,而元类的实际意义则是通过继承 type 类来构造一个新的元类,并进行特定的操作以产生具有特定行为的类对象。这样看来它的本质与普通的类对象没有差异,只不过继承的是 type 类。

Python 类与元类的深度挖掘 II【经验】(python中的类怎样理解)

  在生成实例时是通过调用 __init__ 方法进行初始化的,而实际上在此之前会先调用 __new__ 方法用于创建实例,再通过 __init__ 初始化,就好像 __new__ 负责声明变量,而 __init__ 负责对声明的变量进行初始化一样。这里有一个规则是 __new__(cls,) 的返回值必须是 cls 参数的实例,否则 __init__ 将不会触发,例如在 enum.Enum 的定义中,由于枚举类型是单例模式,因此在定义 __new__ 的时候没有返回其实例,也就不会进行初始化:

  通常情况下自己定义 __new__ 需要通过调用父类的 __new__ 方法创建一个 cls 的实例,同样在定义元类的时候则是调用上面提到的 type 的用法(因为元类继承自 type):

  

  除了 __new__ 方法之外,PEP 还定义了 __prepare__ 属性,用于设定初始化的命名空间(即 type 的第 3 个参数),还是以 enum.Enum 为例,我们需要限制枚举类型中属性名称不得重复使用,则可以通过元类限制类的行为:

  # 定义新的字典类,在赋值新的 dict[k] = v 时

  # 检查 k 是否重复

  Python 中一切皆为对象,所有的对象都是某一类的实例,或是某一元类的实例,type 是自己的元类也是自己的实例

Python的dict字典结构操作方法学习笔记 一.字典的基本方法1.新建字典1)、建立一个空的字典dict1={}dict2=dict()dict1,dict2({},{})2)、新建的时候初始化一个值dict1={1:'a',2:'b',3:'c'}dict1{1:'a',2:'b',3:'c'}3

Python编写电话薄实现增删改查功能 初学python,写一个小程序练习一下。主要功能就是增删改查的一些功能。主要用到的技术:字典的使用,pickle的使用,io文件操作。代码如下:importpickle

Python环境下安装使用异步任务队列包Celery的基础教程 1.简介celery(芹菜)是一个异步任务队列/基于分布式消息传递的作业队列。它侧重于实时操作,但对调度支持也很好。celery用于生产系统每天处理数以百万

标签: python中的类怎样理解

本文链接地址:https://www.jiuchutong.com/biancheng/386151.html 转载请保留说明!

上一篇:Python 类与元类的深度挖掘 I【经验】(python 元类的作用)

下一篇:Python的dict字典结构操作方法学习笔记(python字典x in d)

  • 房产税的计算方法举例说明
  • 临时税务登记的小规模纳税人 个人所得税如何申报
  • 非税收入票据能否税前扣除
  • 自产用于捐赠的会计处理
  • 企业收到银行汇票退回的多余款项
  • 未达起征点的增值税怎么算
  • 如何根据会计凭证登记账簿
  • 财务报表有哪些局限性
  • 垫资后转出的会计分录怎么写?
  • 工程毛利为亏损的原因
  • 不动产进项税额抵扣最新通知2023
  • 企业之间利息收入怎么做账
  • 在途物资的入账价值
  • 建筑公司不需要预缴增值税的有
  • 美国税改“梦想”很丰满,显示很骨感
  • 销售坚果税率多少
  • 固定资产改良被替换怎么处理
  • 自助设备使用费会计科目
  • 内插法计算内部收益率公式
  • 赠送客户产品账务处理
  • 生育津贴计入应付职工薪酬吗
  • 公司的资产负债表包括
  • 总公司和分公司的合作协议
  • 职工食堂购买洗碗机申请
  • 香港公司可以给个人打款吗
  • 笔记本恢复出厂设置后和新的一样吗
  • 银行承兑找个人怎么操作
  • 支付安装设备所有费用
  • 电脑主板bios设置
  • window10玩吃鸡总崩溃
  • 对公帐户定期存款利率
  • 笔记本屏幕清洁剂推荐
  • 费用要素是企业对各种费用按经济用途进行的分类
  • Chat GPT实用案例——VUE+Chat GPT实现聊天功能教程
  • 买发票前金税盘需要抄税和清卡吗?
  • 计提工资个人所得税账务处理
  • 其他业务收入是什么意思
  • java开发和运维
  • php 遍历树
  • tls版本过低怎么办
  • yolo v5 github
  • php 路由实现
  • 融资租赁的会计科目
  • 农产品免税发票可以抵扣增值税吗
  • 大额的维修费用怎么摊销
  • 固定资产清理的借贷方向表示什么
  • sql去除
  • 支付个人赔偿款要交税吗
  • 政府补助免征企业所得税条件会计分录
  • 电子发票应如何打印出来
  • 个人所得税计提会计分录怎么做
  • 工程服务费会计怎么做账
  • 固定资产提取折旧最新规定
  • 在途物资属于会计科目吗
  • 教育费附加退费
  • 房地产业营改增税收政策与企业应对策略课后测试
  • 技术服务行业增值税税负率
  • 甲方代交水电费合法吗
  • 理财利息计入什么科目
  • 包装物属于周转材料还是低值易耗品
  • 进项税发票可以跨年抵扣吗
  • 公司被私募基金收购有啥影响 裁员
  • win7系统c盘太满了,如何清理
  • win8换win10系统步骤
  • win8系统怎么更改无线网络IP
  • 如何在ubuntu上安装软件
  • win10调小键盘
  • win7升级到win10专业版教程
  • win8系统关机在哪
  • WIN10更新失败
  • win7系统怎么启用本地连接
  • pe,翻译
  • linux中查看命令怎么使用
  • nodejs基本原理
  • JavaScript中的this指向
  • [置顶]马粥街残酷史
  • python5.7汉诺塔
  • cocos2d-x安装
  • 长沙税务局几点上班下午
  • 广东省国税局局长潘
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设