全网最适合入门的面向对象编程教程:31 Python的内置数据类型-对象Object和类型Type
扫描二维码
随时随地手机看文章
摘要:
Python 中的对象和类型是一个非常重要的概念。在 Python 中,一切都是对象,包括数字、字符串、列表等,每个对象都有自己的类型。
文档和代码获取:
本文档主要介绍如何使用 Python 进行面向对象编程,需要读者对 Python 语法和单片机开发具有基本了解。相比其他讲解 Python 面向对象编程的博客或书籍而言,本文档更加详细、侧重于嵌入式上位机应用,以上位机和下位机的常见串口数据收发、数据处理、动态图绘制等为应用实例,同时使用 Sourcetrail代码软件对代码进行可视化阅读便于读者理解。
正文
对象Object
在Python的学习中我们肯定会听到一句话:「python中一切皆对象」。所有的数据类型,值,变量,函数,类,实例等等一切可操作的基本单元在 Python 都使用对象(Object)表示。每个对象有三个基本属性:ID,类型和值,也即有一块内存中存储了一个对象,这块内存中一定存有这三个属性。
a = 1print(id(a), type(a), a)print(id(int), type(int), int)print(id(type), type(type), type)
这里,当我们使用id()内建方法时,它将为我们获取对象的唯一编号,这是一个整数,通常对应于对象的内存地址。而type()内置方法则用于获取对象的类型,尽管这里冠以了class开头的说明,但实际上它就是指对象的数据类型。以上运行结果如下所示:
其中,a是一个对象,它的数据类型是int,它的值是1。int和type也是对象,它们的数据类型均是type。一个对象也可能有一个或者多个基类/父类,当一个对象表示数据类型时,比如int对象,它就具有了__bases__ 属性。
print(int.__bases__)print(type.__bases__)print(a.__bases__)
Python把对象分为两类,类型对象(Type)和非类型对象(Non-type):
-
int, type, list等均是类型对象,可以被继承,也可以被实例化;
-
1, [1]等均是非类型对象,它们不可再被继承和实例化,对象间可以根据所属类型进行各类操作,比如算数运算。
类型Type
一个对象必有 Type 属性,同样 Type 是不能脱离开对象存在的。一个对象的类型定义了这个对象支持的行为以及它承载的值的类型,比如取名字,算数运算,求长度等等,一个 int 类型的对象只接受整型的数值。
type()内置方法获取对象的类型。我们也可以使用类名加 “.__class__ ”来获取对象的类型,它们是等价的。
a = 1print(type(a))print(a.__class__)





