2021年了你还不了解新式类与经典类?

系统-等保三级-CentOS Linux 7合规基线检查 shell脚本 阅读详情

“新式类” 与 “经典类”

我们所接触到的类,都是 “新式类”( new-style classes )。同时,在 Python 2.X 相关的版本中,还存在另外一种称之为 “经典类”( classic classes )的类。接下来,我们就来看看 “新式类” 和 “经典类” 在概念上的区别,以及由 “经典类” 到 “新式类” 的所引入的变化。

这里多说一句,小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以进QQ群609616831领取。

如何成为 “新式类”?

在 Python 2.X 中,我们将继承自 object 或其他内置类型的类称为 “新式类”,将除此之外的其他类称为 “经典类” 或 “旧式类”。在Python 3.X中,所有的类均隐式自动的继承自object,即所有的类都是 “新式类”。这一点总结起来,可以认为 “新式类” 在Python 2.X 中是可选的(是否继承自 object )功能,在 Python 3.X 是原生固有的功能。

更进一步,在 Python 2.X 中,若考虑到继承的存在,我们上面对于 “如何成为新式类” 的定义应该被进一步拓宽:在派生类的基类继承链中,只要在任一位置处出现了 object 或者内置类型,则该派生类便会成为 “新式类”。

# Python 2.7
>>> class A:
...     pass
... 
>>> class B(object):
...     pass
... 
>>> class C(A, B):
...     pass
... 
>>> a = A()
>>> b = B()
>>> c = C()
>>> a
<__main__.A instance at 0x7f19000c0dd0>
>>> b
<__main__.B object at 0x7f190010cd90>
>>> c
<__main__.C object at 0x7f19000cafd0>

何为 “新式类”?

“新式类” 所涉及的相关特性是从 Python 2.2 开始逐步引入的,我们之所以将其称为 “新式类”,是因为它们在语言特性层面上和之前的类(“经典类”)有着非常显著的变化,这些变化体现在OOP的各个方面。笼统地说,“新式类” 不仅在之前 “经典类” 的基础上从多个方面进行了特性上的修改,也在多个方面进行了特性上的扩展。我们下面就从细节上看看 “新式类” 的改变与新增之处。

“新式类” 的改变与新增

“新式类” 的改变

类和类型的合并

在 “新式类” 中,一个实例对象的类型便是实例化它的类,即 “新式类” 中类和类型的概念得到了统一。关于 “类” 和 “类型” 的统一,在前面 “一切皆对象” 的小节中简单的提到过,“在新式类中,类和类型的概念合并,类即是类型”,但我们并没有涉及到这个结论的相关细节性内容,接下来我们便更进一步,详细地看看这部分内容。在阅读和理解代码示例前,我们需要提前预习和回顾两个知识点,分别是元类、type() 和 obj.__class__:

简要的说,元类是一种可以拦截类创建的机制,它可以在 class 语句中插入创建类对象时自动执行的相关逻辑,主要用于管理和扩展类。type 类是实例化关系中最顶层的对象(它的另外一个角色是作为内置函数查看对象的类型),默认情况下类由 type 类创建,而元类则通常是 type 类的定制化子类;

type() 返回传入对象的类型,obj.__class__ 则返回类实例所属的类。在 “新式类” 中,type(obj) 和 obj.__class__两者的返回结果相同;而在 “经典类” 中,前者返回始终为 instance,而后者则会返回用户自定义的类对象。</

PDPS16.0单机版与SPLMLicenseServer授权避坑指南:从安装到冲突解决 本文详细解析了PDPS16.0单机版的安装与授权流程,重点阐述了如何正确配置SPLMLicenseServer本地许可证服务器以实现软件激活。针对安装过程中常见的许可证冲突问题,提供了清晰的排查思路和解决方案,并介绍了通过设置环境变量等替代授权方法,帮助用户高效避坑,确保Tecnomatix Process Simulate顺利运行。 阅读详情

相关推荐

PCB盲埋孔工艺全解析:从机械钻孔到激光钻孔的进阶之路

本文全面解析了PCB盲埋孔工艺,对比了机械钻孔与激光钻孔两种核心技术的工艺流程、优势与局限。机械钻孔成本低、工艺成熟,适用于常规孔径;激光钻孔则能实现微孔、叠孔等复杂HDI结构,精度更高。文章深入探讨了如何根据孔径、成本、板厚及产品需求选择合适工艺,并强调了设计与制造协同的重要性,为高密度PCB设计提供实用指南。

weixin_29306317的博客 688

保姆级教程:用YOLOv11和CRNN从零搭建一个车牌识别系统(附完整代码)

本文提供了一份详细的YOLOv11和CRNN实战指南,教你从零搭建高精度车牌识别系统。内容包括环境配置、数据集处理、模型训练与优化,以及系统集成与性能优化技巧,附完整代码实现。特别介绍了YOLOv11在车牌检测中的创新应用和CRNN在车牌识别中的关键技术。

weixin_28358083的博客 321

自然二进制数与格雷码的相互转换

自然二进制数与格雷码两者优势: 自然二进制数的编码方式简单明了,容易理解,在加减运算中能够直接进行,同时十分方便进行一些位运算操作(如移位、取反等)。 格雷码计数时只有一位变化,可有效减少计数器状态的冗余转换,同时在传输数据时能够减小传输错误的概率,此外带权重编码处理更加方便。 在一定程度上自然二进制数与格雷码优缺点基本相反,综上所述,自然二进制数和格雷码各有优劣之处,需要根据具体应用场景选择合适的编码方式。简单来说,在计数器和编码器中,倾向于使用格雷码;而在进行加减运算时,则倾向于使用自然二进制数。

Loudrs的博客 7495

AMSR-2数据下载实战:从JAXA到LPRM的算法选择与效率优化

本文详细介绍了AMSR-2数据的下载实战,重点对比了JAXA与LPRM算法的差异及适用场景,并提供了高效下载方案和网络优化策略。通过实际案例和代码示例,帮助用户快速获取和处理AMSR-2数据,提升研究效率。

rl6adventurer的博客 692

【VMware篇】7-通过ISO镜像升级VMware Esxi

本文主要介绍Dell服务器上安装的ESXi升级的方法之一(采用ISO升级)。

chen_yunan的博客 5519

【已解决】App unavailable Unfortunately, Claude is only available in certain countries and regions

App unavailable Unfortunately, Claude is only available in certain countries and regions right now. We will soon publish a list of supported locations on our website.

weixin_43941438的博客 3万+

Headless Browser 反检测:如何在自动化测试和爬虫中模拟真实用户环境和指纹,以规避检测?

这是最基本的操作,你需要将 Headless Browser 的 User-Agent 修改成一个真实的 User-Agent。我是你们的老朋友,代码界的段子手,今天咱们来聊聊一个让爬虫工程师和自动化测试工程师头疼,但又不得不面对的问题:Headless Browser 的反检测。Headless Browser 的反检测是一个持续对抗的过程,网站的反爬虫机制会不断升级,你需要不断地学习新的反检测技巧。以上只是一些基本的反检测手段,如果你的目标网站的反爬虫机制比较高级,那么你需要使用更高级的技巧。

weixin_41455464的博客 1657

uniapp - 详细解决 H5 网页报错 Uncaught Error: Async component timed out after ? ms.(移动端h5页面白屏或加载缓慢失败,超时报错处理)

uni-app,vue3,网页,h5,移动端,手机H5页面,浏览器,报错,uniapp报错,Asynccomponenttimedoutafter,如何解决这个问题,vue3Asynccomponenttimedoutafter,异步组件超时了怎么办,async,详细解决方案,AsyncComponents异步组件,导致页面打不开了,白屏什么也不显示,网页载入非常慢卡顿,vue3网站报错,超时,nuxt3,详细解决方案,浏览器控制台报错,爆红并且页面卡住了,依旧报错,找不到异步组件的报错

🏆 前端领域优质创作者 3782

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

上一篇: 终极大招完美结合Excel与Python!(零基础就能学)
下一篇: 用了五年flask,居然比不过用了五分钟的“它”!
python阿喵
博客等级 码龄6年 169粉丝 127原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值