4.1 Python对象
Python使用对象模型来存储数据。构造任何类型的值都是一个对象。
所有Python对象都有三个特性:身份,类型和值。
身份:每一个对象都有一个唯一的身份标识自己,可以使用内建函数id()来得到对象的内存地址。
类型:对象的类型决定了该对象可以保存什么类型的值,可以进行什么样的操作,以及遵循什么样的规则。使用type内建函数查看对象类型。
值:对象表示的数据项。
上面三个特性在对象创建的时候就被赋值,除了值以外,其他两个特性都是只读的。
Python用句点标识法来访问属性。
4.2标准类型
数字,整型,布尔型,长整型,浮点型,复数型,字符串,列表,元组,字典。
4.3其他内建类型
类型,NULL对象(None),文件,集合/固定集合,函数/方法,模块,类。
通过调用type函数你能够得到特定对象的类型信息。所有类型对象的类型都是type。
NULL对象只有一个值:None,不支持任何运算。布尔值总是False
核心笔记:布尔值
所有标准对象均可用于布尔测试,同类型的对象之间可以比较大小,每个对象天生具有布尔True或False值。空对象,值为0的任何数字或者NULL对象None的布尔值都是False。
4.6 cmp()
内建函数cmp()用于比较两个对象obj1和obj2。如果1小于2,则返回一个负整型,反之返回一个正整型。若相等则返回0.
>>> a, b = 1, 23
>>> cmp(a, b)
-1
>>> cmp(b, a)
1
>>> b = 1
>>> cmp(a, b)
0
>>>
>>> a, b = 'abc', 'xyz'
>>> cmp(a, b)
-1
4.6.1 str()和repr()(及``操作符)
>>> str(123)
'123'
>>>
>>> repr(123)
'123'
>>> `123`
'123'
eval()将字符串str当有效的表达式来求值并返回计算结果。
repr是将字符串转换为合法的表达式,而str则是将字符串转换为更容易让用户理解的形式。
>>>x = 7
>>> eval( '3 * x' )
21
>>> eval('pow(2,2)')
4
>>> eval('2 + 2')
4
>>> n=81
>>> eval("n + 4")
85
isinstance()函数举例
def displayNumType(num):
print(num, 'is'),
if isinstance(num, (int, long, float, complex)):
print('a number of type:' , type(num).__name__)
else:
print('not a number at all!')
displayNumType(-69)
displayNumType(999999999999999L)
displayNumType(98.6)
displayNumType(-5.2+1.9j)
displayNumType('xx')
与type相似,用于判定对象类型。
4.8更新模型
一个新的对象被创建,取代了旧对象,新创建的对象被关联到原来的变量名,旧对象被丢弃,可用id查看对象的内存地址发生改变。