Python学习笔记《Python核心编程》第4章Python对象
所有的python對(duì)象都擁有三個(gè)特性:身份,類型和值
? ? ?身份:每個(gè)對(duì)象都有一個(gè)唯一的身份標(biāo)識(shí)自己,可以使用內(nèi)建函數(shù)id()來得到,這個(gè)值被認(rèn)為是該對(duì)象的內(nèi)存地址;——只讀
? ? ?類型:對(duì)象的類型決定了該對(duì)象可以保存什么類型的值,可以進(jìn)行什么操作,可以用內(nèi)建函數(shù)type()查看對(duì)象的類型,type()返回的也是對(duì)象(類型也是對(duì)象);——只讀
? ? ?值:對(duì)象標(biāo)識(shí)的數(shù)據(jù)項(xiàng)
python標(biāo)準(zhǔn)類型:
? ? ?數(shù)字 ? ?Interger/整型 ? ?Boolean/布爾型 ? ? Long integer/長整型 ? ? Floating point real number/浮點(diǎn)型 ? ?Complex number/復(fù)數(shù)型
? ? String/字符串 ? ?List/列表 ? ?Tuple/元組 ? ?Dictionary/字典
python其它內(nèi)建類型
? ? 類型對(duì)象 ? ?None ——Python的Null對(duì)象 ? ?文件 ? 集合/固定集合 ? ?函數(shù)/方法 ? ?模塊 ? ?類
內(nèi)部類型:
? ? ?代碼對(duì)象——是變異過的Python源代碼片段,是可執(zhí)行對(duì)象。通過調(diào)用內(nèi)建函數(shù)compile()可以得到代碼對(duì)象,代碼對(duì)象可以被exec命令或eval()內(nèi)建函數(shù)執(zhí)行。
? ? ?幀對(duì)象——標(biāo)識(shí)python的執(zhí)行棧幀。
? ? ?跟蹤記錄對(duì)象——當(dāng)代碼出錯(cuò)時(shí),python就會(huì)引發(fā)一個(gè)異常。當(dāng)異常發(fā)生日,一個(gè)異常的棧跟蹤信息的跟蹤記錄對(duì)象被創(chuàng)建。
? ? ?切片對(duì)象——當(dāng)使用python擴(kuò)展的切片語法是,就會(huì)創(chuàng)建切片對(duì)象。擴(kuò)展的切片語法允許對(duì)不同的索引切片操作,包括步進(jìn)切片、多維切片和省略切片。
? ? ?省略對(duì)象——用于擴(kuò)展切片語法,起記號(hào)作用。
? ? ?XRange對(duì)象——用于需要節(jié)省內(nèi)存使用火range()無法完成的超大數(shù)據(jù)場合。
標(biāo)準(zhǔn)類型操作符
? ? 對(duì)象值比較:返回布爾值True或者False,數(shù)字類型根據(jù)數(shù)字的大小和符號(hào)比較,字符串按照字符序列值進(jìn)行比較。
? ? 對(duì)象身份比較:比較是否是同一個(gè)對(duì)象的引用
? ? ? ? ? a is b 等價(jià)于 id(a)==id(b)————is 與 not標(biāo)識(shí)符都是python關(guān)鍵字
布爾類型:布爾邏輯操作符and or not 都是Python關(guān)鍵字,not優(yōu)先級(jí)最高。? ? ? ? ??
x,y = 3.1415926536,-1024x<5.0 #Truenot (x<5.0) #False (x<5.0) or (y > 2.7) #True (x<5.3) and (y> 2.7) #Falsenot (x is y) #True注: Python中的整型對(duì)象和字符串對(duì)象時(shí)不可變對(duì)象,Python的變量都指針都是指向的同一個(gè)對(duì)象,比如:
? ? ? ?a = 4;?b = 4;??a is b ? ? ? ? #輸出True ? ? id(a) == id(b) 為True
? ? ? ?a = 'abc'; b = 'abc'; ? a is b ? ?#輸出True ? ? id(a) == id(b) 為True
標(biāo)準(zhǔn)類型內(nèi)建函數(shù):
? ? ?python提供了一些內(nèi)建函數(shù)用于這些基本對(duì)象類型:cmp()、repr()、str()、type()和等同于repr()函數(shù)的單反引號(hào)(``)操作符,詳細(xì)如下:
? ? ?type() : 用法為type(object),接受一個(gè)對(duì)象作為參數(shù),并返回它的類型。它返回的值也是以個(gè)類型對(duì)象。貌似前面已經(jīng)寫到過了;
? ? ? ? ? type('abc') ? ? ? #返回<type 'str'>
? ? ? ? ? type(5) ? ? ? ? ? ?#返回<type 'int'>
? ? ?type() 與 isinstance() :代碼如下
#!/usr/bin/env pythondef 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!!'? ? ?cmp() : ? ?用于比較兩個(gè)對(duì)象obj1 和 obj2。如果obj1 < obj2,則返回一個(gè)負(fù)整數(shù),如果obj1>obj2,則返回一個(gè)正整數(shù),如果相等則返回0
? ? ?str() 和 repr()或反引號(hào)操作符``作用為以字符串的方式獲取對(duì)象的內(nèi)容、類型、數(shù)值屬性等信息。str()獲得的字符串可讀性號(hào),而repr()函數(shù)得到的字符串通常可以用來重新獲得該對(duì)象,即:obj == eval(repr(obj)) 這個(gè)等式成立。? ? ?
x = [0,5,0,9] x == eval(repr(x)) #True x == eval(`x`) #True一句話總結(jié):repr()輸出對(duì)python比較友好,而str()的輸出對(duì)用戶比較友好。雖然如此,很多情況下這三者輸出仍然都是完全一樣的。
工廠函數(shù):它們看起來想函數(shù),實(shí)際上它們是類,調(diào)用它們的時(shí)候?qū)嶋H上是生成了改類型的一個(gè)實(shí)例 !如:
int() ? ? ?long() ? ? ?float() ? ? complex() ? ? ?str() ? ? ? unicode() ? ? ?basestring() ? ? ? list() ? ? ? tuple() ? ? ? ?type()
dict() ? ?bool() ? ? ? set() ? ? ? frozenset() ? ? object() ? ? classmethod() ? ? ? ?staticmethod() ? ? ?super() ? ? ? property() ? ? ??file() ? ??
?
以存儲(chǔ)模型為標(biāo)準(zhǔn)的類型分類:
? ? ? 標(biāo)量/原子類型: ? 數(shù)值,字符串
? ? ? 容器類型: 列表、元組、字典
以更新模型為標(biāo)準(zhǔn)的類型分類:
? ? ? 可變類型:列表、字典
? ? ? 不可變類型:數(shù)字、字符串、元組?
以方位模型為標(biāo)準(zhǔn)的類型分類:
? ? ? 直接訪問:數(shù)字
? ? ? 順序訪問:字符串、列表、元組
? ? ? 映射訪問:字典
?本章結(jié)束
? ? ? ? ?
? ? ? ? ?
? ? ? ? ??
?
轉(zhuǎn)載于:https://www.cnblogs.com/NNUF/archive/2013/01/14/2860327.html
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的Python学习笔记《Python核心编程》第4章Python对象的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: error_reporting笔记
- 下一篇: tnsnames.ora无法保存的问题