不加的叫做经典类或旧式类,但是现在python3的类都默认是继承了object的,所以可写可不写

下面举个例子说明:

首先说明下__class__功能与用法:
  • __class__功能和type()函数一样,都是查看对象所在的类。
  • __class__可以套用

在python3的环境下运行:

#coding:utf-
#不继承
class Car():
pass #继承
class Bag(object):
pass if __name__ == "__main__":
car = Car()
bag = Bag()
print('实例所在类')
print(type(car))
print(type(bag)) print('类所在类')
print(type(Car))
print(type(Bag)) print('实例所在类')
print(car.__class__)
print(bag.__class__)
print(bag.__class__.__class__)#实例所在类所在的类 print('类所在类')
print(Bag.__class__)
print(Car.__class__) # 类的类型都是type

返回:

/Users/user/PycharmProjects/python3/venv/bin/python /Users/user/PycharmProjects/python3/test.py
实例所在类
<class '__main__.Car'>
<class '__main__.Bag'>
类所在类
<class 'type'>
<class 'type'>
实例所在类
<class '__main__.Car'>
<class '__main__.Bag'>
<class 'type'>
类所在类
<class 'type'>
<class 'type'> Process finished with exit code

可见结果是一样的,说明python3中有没有继承都一样,因为底层已经帮你继承了

如果我使用的是python2的环境来运行,返回内容为:

(deeplearning2) userdeMacBook-Pro:python3 user$ python test.py
实例所在类
<type 'instance'>
<class '__main__.Bag'>
类所在类
<type 'classobj'>
<type 'type'>
实例所在类
__main__.Car
<class '__main__.Bag'>
<type 'type'>
类所在类
<type 'type'>
Traceback (most recent call last):
File "test.py", line , in <module>
print(Car.__class__) # 类的类型都是type
AttributeError: class Car has no attribute '__class__'

⚠️python2不支持 类名.__class__

可见如果不继承object,实例的类型为instance类,类的类型为classobj类

而继承object的类,类的类型都是type类

除此之外还有一个区别就是内置函数的不同:

#coding:utf-
#不继承
class Car():
pass #继承
class Bag(object):
pass if __name__ == "__main__":
car = Car()
bag = Bag()
print(dir(car))
print(dir(bag))

在python3中都是相同的,这里就不展示了。但是如果是在python2的环境下运行,返回:

(deeplearning2) userdeMacBook-Pro:python3 user$ python test.py
['__doc__', '__module__']
['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__']

可见继承了object类的类,有更多的内置函数可以使用,当你想要完成一些复杂操作的时候就很有用了

python声明类时继承不继承object类的区别的更多相关文章

  1. python 全栈开发,Day20(object类,继承与派生,super方法,钻石继承)

    先来讲一个例子 老师有生日,怎么组合呢? class Birthday: # 生日 def __init__(self,year,month,day): self.year = year self.m ...

  2. 第10章 接口、继承与多态----Object类

    在Java中,所有的类都直接或间接继承了java.lang.Object类.Object类是比较特殊的类,它是所有类的父类,是Java类层中的最高层类.当创建一个类时,总是在继承,除非某个类已经指定要 ...

  3. JDK1.8源码(一)——java.lang.Object类

    本系列博客将对JDK1.8版本的相关类从源码层次进行介绍,JDK8的下载地址. 首先介绍JDK中所有类的基类——java.lang.Object. Object 类属于 java.lang 包,此包下 ...

  4. Java核心技术第五章——2.Object类

    Object类:所有类的超类 Object类是Java中所有类的始祖,在Java中每个类都是由它扩展而来的.但是并不需要这样写: public class Emloyee extends Object ...

  5. JDK1.8源码阅读笔记(1)Object类

    JDK1.8源码阅读笔记(1)Object类 ​ Object 类属于 java.lang 包,此包下的所有类在使⽤时⽆需⼿动导⼊,系统会在程序编译期间⾃动 导⼊.Object 类是所有类的基类,当⼀ ...

  6. Java常用类(一)之Object类详解

    大家都知道Object是所有类的父类,任何类都默认继承Object 理论上Object类是所有类的父类,即直接或间接的继承java.lang.Object类.由于所有的类都继承在Object类,因此省 ...

  7. Java温故而知新(7)Object类及其方法讲解

    一.java.lang.Object java.lang包在使用的时候无需显示导入,编译时由编译器自动导入. Object类是类层次结构的根,Java中所有的类从根本上都继承自这个类. Object类 ...

  8. java中的Object类和其clone()

    1.Object是所有类的父类,任何类都默认继承Object,即直接或间接的继承java.lang.Object类.由于所有的类都继承在Object类,因此省略了extends Object关键字. ...

  9. Java Object类的toString()方法

    Java只要定义一个类,那么它都在继承,没有说明它在继承哪个类的时候,则默认继承java.lang.Object类,也就是说Object类是所有类的父类.看下面一段代码. public class O ...

随机推荐

  1. 小程序框架之视图层 View

    (1)视图层View 框架的视图层由 WXML 与 WXSS 编写,由组件来进行展示. 将逻辑层的数据反应成视图,同时将视图层的事件发送给逻辑层. WXML(WeiXin Markup languag ...

  2. 【Bug档案01】Spring Boot的控制器+thymeleaf模板 -使用中出现静态资源加载路径不当的问题 -解决时间:3h

    总结 - thymeleaf的模板解析规则不清楚,或者忘了; - 出现bug时,瞎调试, 没有打开NETWORK 进行查看资源的加载情况 - 控制器中的其他代码,可以先注释掉,这样就可以迅速屏蔽掉其他 ...

  3. test20190818 NOIP2019 模拟赛

    0+0+20=20,不给大样例,小数据又水,还没有题解的垃圾题. A 题 问题描述: long long ago, Lxhgww 统治的国家里有 n 个城市,其中某一个城市是 capital (首都) ...

  4. Oracle 数据库中的GROUP BY与HAVING

    一.GROUP BY GROUP BY语句用来与聚合函数(aggregate functions such as COUNT, SUM, AVG, MIN, or MAX.)联合使用来得到一个或多个列 ...

  5. oracle数据库锁表

    在团队开发一个项目的时候,避免不了两个或两个以上的人同时操作某一数据库中的同一张表,这时候,如果一个用户没有提交事务,或者忘记提交事务,那么其他用户就不能对这张表进行操作了,这是很烦人的事情,下面是查 ...

  6. Python文件的读写操作

    Python文件的使用 要点:Python能够以文本和二进制两种形式处理文件. 1.文件的打开模式,如表1:  注意:使用open()函数打开文件,文件使用结束后耀使用close()方法关闭,释放文件 ...

  7. [NgRx] Optimistically Editing Entity Data

    First thing first, let's define a action to update entity: import { createAction, props } from " ...

  8. js使用WebUploader做大文件的分块和断点续传

    1 背景 用户本地有一份txt或者csv文件,无论是从业务数据库导出.还是其他途径获取,当需要使用蚂蚁的大数据分析工具进行数据加工.挖掘和共创应用的时候,首先要将本地文件上传至ODPS,普通的小文件通 ...

  9. iframe标签在PC端的使用

    随着前端框架的崛起 各种组件化 模块化开发 然而我发现在PC端要考虑兼容 ~~~~ 自己琢磨着 在PC端怎么吧一个页面做成一个公共的部分  发现有个iframe标签可以在页面中嵌套 虽然iframe可 ...

  10. 83: 模拟赛 树形dp

    $des$ $sol$ 维护每个点的子树中的信息以及非子树的信息 $code$ #include <bits/stdc++.h> using namespace std; #define ...