广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python-浅谈Python2与Pyt
  • 303
分享到

Python-浅谈Python2与Pyt

浅谈PythonPyt 2023-01-31 02:01:28 303人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

在python2版本中编写类时,默认不加载object。那加载object和不加载object的区别在哪里呢?   一是拥有的高级特性不同。 继承object可以拥有许多高级特性,这些高级特性是编写框架和大型项目时需要使用的,十分有用。

python2版本中编写类时,默认不加载object。那加载object和不加载object的区别在哪里呢?

 

一是拥有的高级特性不同。

继承object可以拥有许多高级特性,这些高级特性是编写框架和大型项目时需要使用的,十分有用。

链接https://blog.csdn.net/DeepOscar/article/details/80947155中有继承object与不继承object两者特性的详细的表格

 

二是调用顺序不同。

继承了object的是新式类,不继承 object 的是经典类,在 Python 2 里面新式类和经典类在多继承调用顺序方面会有差异。具体而言就是经典类按照深度优先进行调用,而新式类遵循广度优先进行调用。

比如下面的代码,深度优先调用就是先从D->B->A->C,而广度优先则是D->B->C->A。

具体的调用顺序按照mro列表顺序,可以使用mro()函数来查看mro列表。


class A(object):
    pass

class B(A):
    pass

class C(A):
    pass

class D(B,C):
    pass

d=D()
print(D.mro())

>>>[<class '__main__.D'>, <class '__main__.B'>, <class '__main__.C'>, <class '__main__.A'>, <class 'object'>]

顺便一提,查找父类的函数super()实际上和父类并没有关系,它返回的是MRO列表中的下一个类。因此在单线程的类中返回的就是上一级的父类而已。

 

一般而言,使用新式类对多继承的处理更符合逻辑,所以基于这两点提倡大家在创建类时继承object。

 

python3的版本中,新建的类默认加载了object(即使你不写object),即拥有object的特性和广度优先的调用特点。但是基于书写规范,建议大家还是在类的后面添加上object。

 

感谢

知乎作者邹冲:Https://www.zhihu.com/question/19754936/answer/202650790

个人博客:https://blog.csdn.net/qq_41359051/article/details/83929471

个人博客:https://blog.csdn.net/DeepOscar/article/details/80947155

--结束END--

本文标题: Python-浅谈Python2与Pyt

本文链接: https://www.lsjlt.com/news/185476.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python-浅谈Python2与Pyt
    在Python2版本中编写类时,默认不加载object。那加载object和不加载object的区别在哪里呢?   一是拥有的高级特性不同。 继承object可以拥有许多高级特性,这些高级特性是编写框架和大型项目时需要使用的,十分有用。 ...
    99+
    2023-01-31
    浅谈 Python Pyt
  • Python基础:Python2与Pyt
    Python 3计算出来如果是小数则直接显示小数,Python 2 计算出来如果是小数,则会把小数部分舍去,如果非要小数部分的话,需要如图加上float...
    99+
    2023-01-31
    基础 Python Pyt
  • range()——python2与pyt
    当你在不同python版本下使用 range() 时, 需要注意了我们先在原始IDE下分别码出来:python 2.>>> range(2, 19) [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,...
    99+
    2023-01-31
    range pyt
  • 浅谈fis3与postcss
    Fis3构建工具Fis3的安装npm install -g fis3查看fis3fis3 –vfi3构建工具新建文件夹新建一个根目录进入根目录输入fis3 init指令初始化发布以及监听文件 指令:fis3 release –w –d ./...
    99+
    2023-01-31
    浅谈 postcss
  • 【python】--python2与py
    python3 和python 2 共存1.安装基础的系统包(因为我是在docker下启动的Linux, p_w_picpath中很多包没有装)yum install -y hostname  wget  tar passwd gcc lr...
    99+
    2023-01-31
    python py
  • 浅谈python中的错误与异常
    目录一、语法错误二、异常处理2.1、try-finally语句2.2、raise 语句2.3、assert 断言语句三、小结一、语法错误 异常:大多数的异常都不会被程序处理,都以错误信息的形式展现在这里 二、异常处理...
    99+
    2022-06-02
    python 错误 python 异常
  • 浅谈Python之Django
    目录工具版本创建工程djangostart创建项目message创建一些辅助目录连接数据库(保证自己的数据库已启动)生成数据表总结工具版本 python版本:3.8 djang...
    99+
    2022-11-12
  • 浅谈python迭代器
    1、yield,将函数变为 generator (生成器) 例如:斐波那契数列 def fib(num): a, b, c = 1, 0, 1     while a <= num: ...
    99+
    2022-06-04
    浅谈 迭代 python
  • 浅谈Python协程asyncio
    一、协程 官方描述; 协程是子例程的更一般形式。 子例程可以在某一点进入并在另一点退出。 协程则可以在许多不同的点上进入、退出和恢复。 它们可通过 async def 语句来实现。...
    99+
    2022-11-12
  • 浅谈Python之Django(二)
    目录django设计数据表生成与修改各APP models设计users models 设计course models 设计organization models 设计operati...
    99+
    2022-11-12
  • 浅谈Python之Django(三)
    目录django-admin基本介绍激活django-admin创建访问django-admin的超级用户访问django-admin修改django-admin为中文修改djang...
    99+
    2022-11-12
  • 浅谈Python之Django(四)
    目录1.pip3 install xadmin2.解决方案3. 修改配置文件setting.py中的INSTALLED_APPS4.修改urls中的路由5.访问6.设置显示的字段与搜...
    99+
    2022-11-12
  • 浅谈tf.train.Saver()与tf.train.import_meta_graph的要点
    (一)、tf.train.Saver() (1). tf.train.Saver() 是用来保存tensorflow训练模型的,默认保存全部参数 (2). 用来加载参数,注:只加载存...
    99+
    2022-11-12
  • 浅谈JavaScript节流与防抖
    目录节流与防抖概念:区别节流实现节流函数防抖实现防抖函数防抖升级版总结 节流与防抖概念:区别节流实现节流函数防抖实现防抖函数防抖升级版总结 节流与防抖 背景:当我们频繁去请求资源、接...
    99+
    2022-11-12
  • 浅谈location.search与location.hash的问题
    location.search和location.hash是JavaScript中URL对象的两个属性,用于获取和设置URL中的查询...
    99+
    2023-08-11
    location.hash
  • Python入门_浅谈逻辑判断与运算符
    这是关于Python的第6篇文章,主要介绍下逻辑判断与运算符。 (一) 逻辑判断: 如果要实现一个复杂的功能程序,逻辑判断必不可少。逻辑判断的最基本标准:布尔类型。 布尔类型只有两个值:True和False...
    99+
    2022-06-04
    浅谈 运算符 逻辑
  • Python与协程从Python2—Py
    协程,又称微线程、纤程,英文名Coroutine;用一句话说明什么是线程的话:协程是一种用户态的轻量级线程。 Python对于协程的支持在python2中还比较简单,但是也有可以使用的第三方库,在python3中开始全面支持,也成为pyt...
    99+
    2023-01-31
    Python Py
  • Python2与Python 3的对比
    首发 http://www.everlose.info/notes/2013/10/31/difference-between-python3-to-python2/ 这篇文章总结了一些与Python2.6相比Python3.0中的新特性...
    99+
    2023-01-31
    Python
  • 浅谈python中的多态
    目录一、多态二、多态性三、鸭子类型一、多态 多态是指一类事物有多种形态,比如动物类,可以有猫,狗,猪等等。(一个抽象类有多个子类,因而多态的概念依赖于继承) import abc class Animal(met...
    99+
    2022-06-02
    python 多态
  • 浅谈python中set使用
    浅谈python中set使用 In [2]: a = set() # 常用操作1 In [3]: a Out[3]: set() In [4]: type(a) Out[4]: set...
    99+
    2022-06-04
    浅谈 python set
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作