声明:以下仅为个人学习Python过程中总结的比较自洽的理解,事实上Python面向对象模型可能没那么简单。经查阅,Python在以前的版本还有不继承自object的类,叫做经典类。

用dir(object)可以查看object所有属性和方法的名称。

个人的理解是,object是Python语言面向对象模型的重要且必要组成部分。在Python中,每一个名称(变量名、函数名、类名)都指向一个对象(对象往往都是占据内存空间的实体),每个对象的内部都规定了该对象从属的类,而每个类都有父类,一直追溯下去,必然得到所有类的基类——object类,同时这个类也是对象,你可以通过id(object)获得object对象的地址,通过sys.getsizeof(object)获得object对象占用内存大小。

object类是最特殊的类,它的父类就是自身。object类存在的意义在于,它使所有Python对象本质上都属于object类,都继承了object类的属性和方法,哪怕是其它语言中还不属于对象的原子类型:整型、浮点或者布尔类型。这使得Python写起来很容易,例如,在静态语言里,函数的传入参数必须符合类型规定,是double就不能是int,否则编译就无法通过。但是在Python中,不管你传入什么参数到函数中,都是object类型或其子类的对象,而类型不符合的异常在使用者不主动检查类型时是等到运行过程中属性或方法引用失败才抛出的。所以说,Python是强类型,而不是没有类型,只不过所有变量类型都继承自object,这套类型系统是非常严密的。

然而,Python这种面向对象模型有静态语言不具有的弊端,就是Python必须给每个变量都在内存中存储面向对象相关的信息。例如,一个整数在C语言中占4个字节,但是在Python中:

另外,对于同样的表达式a+b,静态语言直接根据类型编译成机器码,而Python则是将这个表达式看成a.__add__(b),过程中需要判断a对象是否有__add__方法,b对象是否符合条件,性能上相比静态语言落后了很多。

python里object是什么类型_Python中的object这个叫做基类的类,它的属性和行为都有哪些?...相关推荐

  1. python里的shell是什么_python中的shell操作

    http://blog.csdn.net/meng_tianshi/article/details/6682317 首先介绍一个函数: os.system(command) 这个函数可以调用shell ...

  2. python里dir是什么意思_python中dir什么作用

    python中dir的作用是:1.dir函数传入数据类型返回该数据类型的所有内置方法:2.dir函数传入模块名返回该模块的所有属性和方法. dir() 内置函数的作用 python 内置方法有很多,无 ...

  3. python里的关键字有哪些_Python中的yield关键字做了什么?

    Python中的yield关键字做了什么 要理解yield做了什么,就必须明白生成器(generators)为何物,而在明白生成器之前还要知道迭代器(iterables). 1.迭代器 当我们创建一个 ...

  4. python里的关键字有哪些_Python 中的关键字有哪些?

    在Python中,具有特殊功能的标识符称为关键字.关键字是Python语言自己已经使用的了,不允许开发者自己定义和关键字相同名字的标识符.Python中的关键字如下所示: Falsedefifrais ...

  5. python里randint是什么意思_Python中random.randint方法(精选)

    Python中 random.randint方法的具体用法?Python 中random.randint怎么用?Python 中random.randint使用的例子?以下例子或许可以帮助到你: 示例 ...

  6. python里的log怎么表示_python中的对数log函数表示及用法

    在数学运算中,如果没有计算器,对于很大的数字相乘,我们花费大量的时间计算,而且一旦出错,就要重新计算,很是麻烦.其实对于数字相乘,不依靠靠计算器,想要准确简单的运算的方法不是没有,那就是对数和指数,他 ...

  7. python里raise是什么意思_Python中raise与raise...from之间有何区别?

    本篇文章给大家带来的内容是关于Python中raise 与 raise ... from之间有何区别?有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 起步 Python 的 raise ...

  8. python里try和except用法_Python中的错误和异常处理简单操作示例【try-except用法】...

    本文实例讲述了Python中的错误和异常处理操作.分享给大家供大家参考,具体如下: #coding=utf8 print ''''' 程序编译时会检测语法错误. 当检测到一个错误,解释器会引发一个异常 ...

  9. python里的append怎么用_python中append实例用法总结

    append()函数 描述:在列表ls最后(末尾)添加一个元素object 语法:ls.append(object) -> None 无返回值 例: a=[1,2,3] a.append(5) ...

最新文章

  1. 通俗理解tf.name_scope()、tf.variable_scope()
  2. 每周一书-2016年8月28日到9月4日获奖读者公布
  3. apscheduler 脚本执行失败_在脚本中使用 Bash 信号捕获 | Linux 中国
  4. z01、z02.....怎么解压缩
  5. C++学习笔记-类定义的注意事项和C#的区别
  6. 关于Julia 和Matlab速度的比较!(以偏概全)。
  7. Java常用设计模式总结及应用场景分析
  8. Verilog一个非常简洁的8选1多路选择器
  9. 软工网络15团队作业4——Alpha阶段敏捷冲刺之Scrum 冲刺博客(Day1)
  10. 卖桃者说(1)有效学习
  11. panabit之PPPoE认证
  12. DAZ3D STUDIO的保存设置
  13. Linux 开机引导和启动过程详解
  14. 什么是CDN?什么又是高防CDN?
  15. 一些学习,有趣,电影,资源网址
  16. Lazada跨境直播,双11直播成绩傲娇!如何做到大促流量销量双收割?
  17. java程序启动打印_JAVA打印问题:程序正常运行,打印机无反应
  18. 员工内斗,管理者要不要插手?
  19. C#三大迷宫生成算法
  20. java获取当前时间(年月日)

热门文章

  1. jdk安装问题:javac不是内部命令报错
  2. 简单概括什么是线性结构和非线性结构
  3. EditText保留小数点后面两位
  4. 125KHZ|134.2KHZ低频RFID玻璃管标签读写器编码器支持各类标签类型说明
  5. 内置Prisemi保护IC P14C1N,安克、真我、万魔、红米等全新产品TWS耳机上应用,现推荐安克举例。
  6. 运维知识讲解之打印机连接以及电脑局域网共享打印机
  7. MySQL 查询日期格式化
  8. 奥的斯服务器显示,教你奥的斯服务器怎么看故障!
  9. OSChina 周日乱弹 ——大白,我对这个世界好失望
  10. 计算机毕业设计Node.js+Vue星空摄影网站论文(程序+源码+LW+部署)