这篇文章主要讲解了“Python里有多少种对象”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python里有多少种对象”吧!
首先说一下Python中的对象从哪来的。
typedef struct _object {
_PyObject_HEAD_EXTRA
Py_ssize_t ob_refcnt;
PyTypeObject *ob_type;
} PyObject;
Python的底层用c语言写的,所以正统的Python其实叫做CPython。在Windows安装Python时候,肯定会有个叫python.exe的程序(其他系统也类似),是专门用来解释执行Python代码的。在这里的Python代码最终转为了c代码。c代码里面有个 PyObject结构体。
这个结构体有意思了,主要包含俩功能,一个是引用计数是回收垃圾用的,另一个是个指针,指向“type object”,用来根据不同类型的代码转接到不同的c函数。其实这里就是所谓对象的起源了,因为这里的type其实会和python代码定义的不同对象类型来个对应的检查,检查通过了就去执行对应的函数了,更具体说就是去内存里找对应的数据进行处理。比如Python代码传过来一个列表a,这个a最终到c语言里就会通过PyList_Check(a) 检查是不是定义好的list这个type,然后就去做对应操作了。
#define PyList_Check(op) \
PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_LIST_SUBCLASS)
对于学习编程认为面向对象很难的同学,其实可以想开点,这不过是python与c语言互相串通,定义好的数据交换规则罢了。只是这里面杂七杂八的规则有点多,咱们以后慢慢聊。你可以提前收藏网页de8ug.vip,关注最新进展。
接下来就是配合七夕的表演了,我们来数数Python里面有多少种对象。
刚才我们聊到Python对应的c语言里有个type,可以理解为类型的意思。扩展到Python里面,会经常出现一个词儿叫做object type。顾名思义,不同的对象其实就是不同的类型,我们生活中各种物品都分门别类,想用代码来处理,那么就在代码里面也给他们分门别类,这样计算起来好算,存储起来也好存。
至于Python里面有多少种对象,可以从重要的几种内置类型说起。这些内容主要在官方文档的stdtypes章节。
Python里面的最重要的内置类型有 numerics, sequences, mappings, classes, instances and exceptions。翻译成普通话就是数字,序列,映射,类,实例,异常。如果你要长期写代码,还是直接记住英文名字比较好。
int
float
complex
首先是Numeric Types,支持int, float, complex(整数,浮点数,复数)三种数据。这个很好理解了,我们从小接触数学,进行各种计算都离不开各种数学数字。
list
tuple
range
str
Binary Sequence Types - bytes, bytearray, memoryview
Set Types — set, frozenset
接下来是Sequence Types,即序列类型,其中list, tuple, range是很常见的表示序列的类型,然后有个更常用的关于字符文本等的序列被单拿出来为str,计算机中的内部世界二进制的序列最为常见,所以序列类型还有Binary Sequence Types,其中又包括bytes, bytearray, memoryview。
序列里面还有个比较特殊的就是集合set,主要用于寻找不重复的元素和进行数学集合运算。
提到序列类型,就要出现迭代器Iterator和生成器Generator了,他们对于从序列中寻找某一个元素非常重要。
在数据结构中,映射类型是非常重要的一种。在各种编程语言里用途也非常多,这也是DE8UG个人非常喜欢的一种。Python里的映射类型就是字典dict了。在做各种开发时,这种数据结构用途非常广泛,让我们能很方便地存储有对应关系的数据并快速查找需要的元素。
Modules
Classes and Class Instances
Functions
Methods
Code Objects
Type Objects
The Null Object
The Ellipsis Object
The NotImplemented Object
Boolean Values
Internal Objects
接下来就是大量的其他类型了。小到Boolean,null,大到一个class,一个module,真的可谓是处处都是对象了。看到这么多的objects没必要惊慌,根据自己的学习进度和使用需要,遇到不同的对象,仔细查看ta对应的属性和方法就好。
感谢各位的阅读,以上就是“Python里有多少种对象”的内容了,经过本文的学习后,相信大家对Python里有多少种对象这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。