Python语言中,所有的东西都是对象,因此对于python初学者来说,搞清楚python对象的具体实现非常重要。
Python中的对象主要分为类型对象和实例对象,但也不排除有同时属于类型和实例的对象,而不管是什么对象,除了内置的类型对象外,都存在于堆上,内置的类型对象则静态分配内存。
内置对象的作用:
内置对象往往比定制的数据结构更有效率,这是因为Python内置对象优化了用c实现数据结构的算法。
内置对象使得程序更容易编写。例如,集合(列表)和搜素表(字典),可以马上使用它们,而不需要自己去编写这些数据结构。
内置对象可拓展。对于复杂的一些应用任务,需要提供自己编写的对象类型,这时候可以利用Python的类或c语言的接口,往往这些拓展对象是建立在内置对象的基础上。
内置对象:
数字 1234 ,3.14 ,3*4j,decimal,fraction
字符串 “hello”
列表 [1,4,[4,5],"three"]
字典 {'greet':'hello'}
元组 ('hello',4)
文件myfile=open('eggs','r')
集合 set('abc'),{'a','b'}
其他类型 None 布尔型
编程单元类型 函数,块
与实现相关的类型
None
None表示一个null对象,这是一个空对象,如果一个函数没有返回值,则返回null对象。None没有任何属性,在布尔表达式中表示False。
数字类型
除了布尔类型外,所有数字类型都是有符号的。整数的表示范围在-2147483648和2147483647之间,长整数可以表示任意长度,只受可用内存大小的限制。
序列类型
序列表示索引为非负数的有序对象集合,包括字符串、列表和元组。字符串是字符的序列,列表和元组是任意对象的序列。字符串和元组是不可变的,而列表可以插入、删除和替换。所有序列支持迭代。
字典
字典(dict)是python为唯一的内置映射类型,任何不可变对象都可以用作字典的键值,如字符串、数字、元组等。字典使用大括号表示,键和值之间用冒号分割,各个键值间用逗号隔开。映射对象是无序的。
PS:
操作符重载:如果你想提供一个新的特殊的序列对象,它由内置序列组成,写一个类可以重载索引、分片、合并等操作:
class MySequence:
def __getitem__(self,index):
# [index], for x in self, x in self
def __getslice__(self,low,high):
# called on self[low:high]
def __add__(self,other):
# called on self + other
python的内置类型是真正的预编码C扩展程序类型。在你写自己的代码的时候,你需要知道类型的类别。
共性:列表、字典和元组可以包括任何种类的对象;列表、字典和元组可以任意嵌套;列表、字典可以动态扩大和缩小。
“我们相信人人都可以成为一个IT大神,现在开始,选择一条阳光大道,助你入门,学习的路上不再迷茫。这里是北京尚学堂,初学者转行到IT行业的聚集地。"
如果有什么问题也可以关注IT百战程序员(baizhanchengxuyuan)