《Python核心編程》筆記 Python對象,python核心編程

來源:互聯網
上載者:User

《Python核心編程》筆記 Python對象,python核心編程
第4章 Python對象1、Python對象

Python使用物件模型來儲存資料,構造任何類型的值都是一個對象。所有的對象都有三個特性:

  • 身份,可通過內建函數id()查看,這個值即該對象的記憶體位址。
  • 類型,可通過內建函數type()查看。
  • 值,對象表示的資料項目。
>>> p = 12>>> id(p)31108092>>> type(p)<type 'int'>>>> p12>>> 
2、標準類型

整型Integer,長整型Long integer,浮點型float,複數型complex number,布爾型bool,字串string,列表list,元組tuple,字典dictionary。

3、其他內建類型
  • type類型對象

    type類型本身就是一個對象,它的類型為‘type’。

>>> type(1)<type 'int'>>>> type(type(1))<type 'type'>
  • None——Python的Null對象

    Python有一個特殊的類型,稱作Null對象或者NoneType,它只有一個值:None,None的布爾值為False。

  • 檔案

  • 集合
  • 函數/方法
  • 模組
  • 類
4、內部類型

內部類型我們一般不會過多關注與使用,瞭解一下即可。

  • 代碼對象

    代碼對象是編譯過的Python原始碼片段,可執行。可以通過內建函數compile()得到代碼對象。代碼對象可以被exec命令或者內建函數eval()執行。

  • 幀

  • 追蹤記錄對象

    程式出現異常退出時,一個包含針對異常的棧跟蹤資訊的追蹤記錄對象被建立:

>>> pri   Traceback (most recent call last):    File "<stdin>", line 1, in <module>   NameError: name 'pri' is not defined
  • 切片對象

    當使用Python的切片文法時,就會建立切片對象。

  • 省略對象

    用於切片文法中,起記號作用。 如 str[::2]之類。

  • Xrange對象

    調用內建函數xrange()會產生一個XRange對象,xrange是range的兄弟版本,用於需要節省記憶體 或 range無法完成的超大資料集場合。

5、標準類型操作符
  • 對象值的比較
  • 對象身份比較

    這個涉及到Python“引用計數”的相關知識,上一篇文章中有總結。Python還提供了is和is not操作符來測試兩個變數是否指向同一個對象。

>>> a = 1>>> b =a>>> c = 2>>> a == bTrue>>> a is cFalse>>> a is not cTrue>>> a is bTrue

我們通過id也可以直接判斷它們是否指向同一對象:

>>> id(a),id(b),id(c)(31108224, 31108224, 31108212)
6、標準類型內建函數
  • cmp(obj1,obj2)

    obj1大於obj2則返回1,小於返回-1,等於返回0。

>>> a,b,c,d = 1,2,3,2>>> cmp(b,a),cmp(b,c),cmp(b,d)(1, -1, 0)
  • type(obj)
  • str()、repr()、”操作符

    str()、repr()、”操作符都能夠以字串的方式擷取對象的內容。str()獲得的字串可讀性好,repr()擷取的字串通常可以用來重新獲得該對象。

>>> str([1,2,3])'[1, 2, 3]'>>> repr([1,2,3])'[1, 2, 3]'>>> '[1,2,3]''[1,2,3]'
7、類型工廠函數

Python2.2統一了類和類型。原來所謂的內建類型轉換函式像int()、type()、list()等都成了工廠函數,也就是說他們看上去像函數,實質上是類,當調用它們時,實際上產生了該類型的一個執行個體,像工廠產生貨物一樣。

8、標準類型的分類

儲存模型,更新模型,訪問模型。

9、Python不支援的類型
  • char或byte
  • 指標
  • 整型

    Python中沒有像C語言那樣的int、short、long。當你使用一個整型數值超出範圍時,python會自動返回一個長整型給你,python的長整型表示的數值範圍很大。

  • float vs double

    Python的浮點類型float實際上是C的double。浮點型總是不精確的,故Python還提供了Decimals模組,它有任意精度,在處理金錢這類確定的值時,Decimals模組很有用。

原文:http://blog.csdn.net/u012162613/article/details/44049607

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.