python理解-对象类型


概述
程序由模块构成;

模块包含语句;

语句包含表达式;

表达式建立并处理对象;

python提供了强大的对象类型作为语言的组成部分。

动态类型简介
在python中,类型是在运行过程中自动决定的,而不是通过代码声明的。变量名没有类型,类型属于对象,而不是变量。

从技术上来讲,对象有更复杂的结构而不仅仅是有足够的空间表现它的值那么简单,每个对象都有两个标准的头部信息:一个类型标志符去标示这个对象的类型,以及一个引用的计数器,用来表示是不是可以回收这个对象。

变量总是一个指向对象的指针,而不是可改变的内存区域的标签:给一个变量一个新的值,并不是替换了原始的对象,而是让这个变量去引用完全不同的一个对象。

内置对象预览 

对象类型 可变性 例子常量/创建
数字(numeric) 123,3.14, 999L, 3+4j,Decimal
字符串(string) ‘spam’, “Hello World”
列表(list) [1, [2, 3], 4]
字典(dictionary) {‘food’:’spam’, ‘taste’:’yum’}
元组(tuple) (1, ‘spam’, 4, ‘u’)
文件(file) myfile = open(‘eggs’, ‘r’)
布尔型 True, False
其它类型(other) 集合,类型,None
 

注:python同时提供特定应用领域的对象类型,如文本模式、数据库接口、网络连接等;

数字
数字并不是一个真正的对象类型,而是一组类似类型的分类。

python数字的精度和建立python解释器的C语言编译器使用的长整型和双精度浮点型的精度是一样的。

即:python整型精度<=>C语言的长整型精度;python的浮点数精度<=>C语言的双精度浮点型精度

布尔型
bool原本是一个数字,True和False只不过是内置的整数类型int的子类,除了它们有特定的逻辑打印形式以外。

小数数字
功能上来说类似浮点数,有固定的小数位数,固定的精度。此外,能够定义省略和截短额外的小数数字。它对于表现固定精度的特征以及对实现更好的数字精度是一个理想的工具。

字符串
不可变序列,不可以在原处修改;

字符串抑制编码r和Unicode字符集u;

基本操作:合并、索引、分片、扩展分片、转换、格式化和字符串方法

列表、字典
可变序列,可以在原处修改;

支持任意嵌套;

方法无返回值,这一点与不可变序列(字符串、元组)完全不同;

元组、文件
都作为不可变序列,不可在原处修改;

总结:
比较:

== 操作符测试值的相等性;

is 操作符测试对象的一致性;

真假判断:

数字如果非零,则为真;

其它对象如果非空,则为真;

Still water runs deep...

摘自 John Lee

相关内容

    暂无相关文章

评论关闭