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查看对象的内存地址发生改变。