- Python对象的三个特性:身份,类型和值
身份:
每一个对象都有一个唯一的身份标识自己,任何对象的身份可以使用内建函数id()来得到。这个值可以被认为是该对象的内存地址。
类型
对象的类型决定了该对象可以保存什么类型的值,可以进行什么样的操作,以及遵循什么样的规则。您可以用内建函数type()查看Python 对象的类型
值
对象表示的数据项 - 类型对象和type类型对象:
>>> type(42)
<type 'int'>
>>> type(type(42))
<type 'type'>
>>>
所有类型对象的类型是type - Python 有一个特殊的类型,被称作 Null 对象或者 NoneType,它只有一个值,那就是 None。
它不支持任何运算也没有任何内建方法。None 没有什么有用的属性,它的布尔值总是False
下列对象的布尔值是False。
- None
- False (布尔类型)
- 所有的值为零的数:
- 0 (整型)
- (浮点型)
- 0L (长整型)
- 0.0+0.0j (复数)
- "" (空字符串)
- [] (空列表)
- () (空元组)
- {} (空字典)
- 标准类型值比较运算符
运算符 功能
expr1 < expr2 expr1 小于 expr2
expr1 > expr2 expr1 大于 expr2
expr1 <= expr2 expr1 小于等于 expr2
expr1 >= expr2 expr1 大于等于 expr2
expr1 == expr2 expr1 等于 expr2
expr1 != expr2 expr1 不等于 expr2 (C 风格)
expr1 <> expr2 expr1 不等于 expr2 (ABC/Pascal 风格)
整数对象和字符串对象是不可变对象,所以Python 会很高效的缓存它们。
>>> a = 1
>>> id(a)
8402824
>>> b = 1
>>> id(b)
8402824
>>>
>>> c = 1.0
>>> id(c)
8651220
>>> d = 1.0
>>> id(d)
8651204
函数 功能
cmp(obj1, obj2) 比较 obj1 和 obj2, 根据比较结果返回整数 i:
i < 0 if obj1 < obj2
i > 0 if obj1 > obj2
i == 0 if obj1 == obj2
repr(obj) 或 `obj` 返回一个对象的字符串表示
str(obj) 返回对象适合可读性好的字符串表示
type(obj) 得到一个对象的类型,并返回相应的type 对象
- Python不支持的对象:
char 或 byte
Python 没有 char 或 byte 类型来保存单一字符或8 比特整数。你可以使用长度为1 的字符串表示字符或8 比特整数。
指针
Python 替你管理内存,因此没有必要访问指针。在Python 中你可以使用id()函数得到对象的身份
int vs short vs long:
Python 的普通整数相当于标准整数类型
float VS double:
Python 认为同时支持两种浮点类型的好处与支持两种浮点类型带来的开销不成比例,所以Python 决定不支持单精度浮点数