1 python對象分類
所有的Python對象都擁有三個特性:身份,類型和值
- 身份: 每一個對象都有一個唯一的身份標識自己。任何對象的身份可以使用內建函數id()來得到。這個值可以被認為是該對象的內存地址
- 類型: 對象的類型決定了對象可以保存什么類型的值,可以進行什么樣的操作,以及遵循什么樣的規則。你可以內建type()查看對象的類型
-
值:對象表示的數據項
對象屬性:某些對象有屬性、值或相關聯的執行代碼。python用句點(.)標記法來訪問屬性。屬性包括相應對象的名字。最常用的屬性是函數和方法
2 對象類型
標准類型(Numeric, Sequence, Mapping)
- 數字(分為幾個子類型,其中二個是整形)
- Interger 整型
- Long integer 長整型
- Boolean 布爾類型
- Float point real number 浮點型
- Complex number 復數型
- String 字符串
- List 列表
- Tuple 元組
- Dictionary 字典
其他類型對象(Internal, ...)
- 類型
- Null 對象(None)
- 文件
- 可變/不可 集合
- 函數/方法
- 模塊
- 類
類型對象和type類型對象(Fundamental, ...)
對象的一系列固有行為和特性都是事先定義好,從這個角度來說,類型正是保存這些信息的最佳位置。描述一種類型所需要的信息不可以用一個字符串來搞定,所以類型不能是一個簡單的字符串,也不能和數據保存在一起,所以用將類型定義成一個對象是最好的選擇。
類型對象和type類型對象
對象的一系列固有行為和特性都是事先定義好,從這個角度來說,類型正是保存這些信息的最佳位置。描述一種類型所需要的信息不可以用一個字符串來搞定,所以類型不能是一個簡單的字符串,也不能和數據保存在一起,所以用將類型定義成一個對象是最好的選擇。
>>> type(2) <type 'int'> >>> type(int) <type 'type'> >>> type(type(1)) <type 'type'>
通過調用type()函數,能夠得到特定對象的類型信息。從上述代碼中我們可以知道,所有類型對象的類型都是type,它是所有python類型的根和所有python標准類型的默認元類(metaclass).
所有標准對象均可用於布爾測試,同類型的對象之間可以比較大小,每個對象天生具有True
值或False
值,空對象,值為0的任何數字或者Null
對象None
的布爾值都是False。
下列對對象的布爾值是False:
- None
- False(布爾類型)
- 所有的值為零的數
- 0(整型)
- 0.0 (浮點型)
- 0L (長整型)
- 0.0+0.0j (復數)
''
空字符串- [] 空列表
- {} 空字典
- () 空元組
值不是上面列出來的任何值的對象的布爾值都是True
3 python對象特征
- 數字(整數,浮點數,二進制,分數等)
支持加法和乘法等 - 序列(字符串,列表,元組)
支持索引,分片和合並 - 映射(字典)
支持通過鍵的索引等 - 對象的類型告訴Python去執行什么樣的任務。
- 集合是自成一體的一個分類(不會把鍵值映射到值,也沒有逐位的排序順序)。
1.不可變類型(數字,字符串,元組,不可變集合):不支持原處修改
2.可變類型(列表,字典,可變集合):可以通過操作原處修改,而不用創建新的對象
一般來說,不可變類型具有某種完整性,保證這個對象不會被程序的其他部分改變。
參考: