下面的表格中列出了已經(jīng)學(xué)習(xí)過(guò)的數(shù)據(jù)類(lèi)型,也是python的核心數(shù)據(jù)類(lèi)型之一部分,這些都被稱之為內(nèi)置對(duì)象。
對(duì)象,就是你面對(duì)的所有東西都是對(duì)象,看官要逐漸熟悉這個(gè)稱呼。所有的數(shù)據(jù)類(lèi)型,就是一種對(duì)象。英文單詞是object,直接的漢語(yǔ)意思是物體,這就好像我們?cè)诂F(xiàn)實(shí)中一樣,把很多我們看到和用到的都可以統(tǒng)稱為“東西”一樣。“東西”就是“對(duì)象”,就是object。在編程中,那個(gè)所謂面向?qū)ο?,也可以說(shuō)成“面向東西”,是嗎?容易有歧義吧。
對(duì)象類(lèi)型 舉例
int/float 123, 3.14
str 'qiwsir.github.io'
list [1, [2, 'three'], 4]
dict {'name':"qiwsir","lang":"python"}
tuple (1, 2, "three")
set set("qi"), {"q", "i"}
不論任何類(lèi)型的數(shù)據(jù),只要?jiǎng)佑胐ir(object)或者h(yuǎn)elp(obj)就能夠在交互模式下查看到有關(guān)的函數(shù),也就是這樣能夠查看相關(guān)幫助文檔了。舉例:
代碼如下:
>>> dir(dict)
看官需要移動(dòng)鼠標(biāo),就能夠看全(下面的本質(zhì)上就是一個(gè)list):
代碼如下:
['__class__', '__cmp__', '__contains__', '__delattr__', '__delitem__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'has_key', 'items', 'iteritems', 'iterkeys', 'itervalues', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values', 'viewitems', 'viewkeys', 'viewvalues']
先略過(guò)__雙下劃線開(kāi)頭的哪些,看后面的,就是dict的內(nèi)置函數(shù)。至于詳細(xì)的操作方法,通過(guò)類(lèi)似help(dict.pop)的方式獲得。這是前面說(shuō)過(guò)的,再說(shuō)一遍,加深印象。
我的觀點(diǎn):學(xué)習(xí),重要的是學(xué)習(xí)方法,不是按部就班的敲代碼。
今天既然是復(fù)習(xí),就要在原來(lái)基礎(chǔ)上提高一點(diǎn)。所以,也要看看上面那些以雙下劃線開(kāi)頭的東西,請(qǐng)看官找一下,有沒(méi)有發(fā)現(xiàn)這個(gè):"__doc"。這是什么,它是一個(gè)文件,里面記錄了對(duì)當(dāng)前所查看的對(duì)象的詳細(xì)解釋??梢栽诮换ツJ较逻@樣查看:
>>> dict.__doc__
顯示應(yīng)該是這樣的:
代碼如下:
"dict() -> new empty dictionary\ndict(mapping) -> new dictionary initialized from a mapping object's\n (key, value) pairs\ndict(iterable) -> new dictionary initialized as if via:\n d = {}\n for k, v in iterable:\n d[k] = v\ndict(**kwargs) -> new dictionary initialized with the name=value pairs\n in the keyword argument list. For example: dict(one=1, two=2)"
注意看上面亂七八糟的英文中,是不是有\(zhòng)n符號(hào),這是什么?前面在講述字符串的時(shí)候提到了轉(zhuǎn)義符號(hào)\,這是換一行。也就是說(shuō),如果上面的文字,按照排版要求,應(yīng)該是這樣的(當(dāng)然,在文本中,如果打開(kāi),其實(shí)就是排好版的樣子)。
代碼如下:
"dict() -> new empty dictionary
dict(mapping) -> new dictionary initialized from a mapping object's
(key, value) pairs
dict(iterable) -> new dictionary initialized as if via:
d = {}
for k, v in iterable:
d[k] = v
dict(**kwargs) -> new dictionary initialized with the name=value pairs
in the keyword argument list. For example: dict(one=1, two=2)"
可能排版還是不符合愿意。不過(guò),看官也大概能看明白了。我要說(shuō)的不是排版,要說(shuō)的是告訴看官一種查看某個(gè)數(shù)據(jù)類(lèi)型含義的方法,就是通過(guò)obj.doc文件來(lái)看。
嘿嘿,其實(shí)有一種方法,可以看到排版的結(jié)果的:
代碼如下:
>>> print dict.__doc__
dict() -> new empty dictionary
dict(mapping) -> new dictionary initialized from a mapping object's
(key, value) pairs
dict(iterable) -> new dictionary initialized as if via:
d = {}
for k, v in iterable:
d[k] = v
dict(**kwargs) -> new dictionary initialized with the name=value pairs
in the keyword argument list. For example: dict(one=1, two=2)
上面那么折騰一下,就是為了湊篇幅,不然這個(gè)總結(jié)的東西太少了。
總之,只要用這種方法,你就能得到所有幫助文檔,隨時(shí)隨地。如果可以上網(wǎng),到官方網(wǎng)站,是另外一種方法。
還需要再解釋別的嗎?都多余了。唯一需要的是看官要能會(huì)點(diǎn)英語(yǔ)。不過(guò)我相信看官能夠讀懂,我這個(gè)二把刀都不如的英語(yǔ)水平,還能湊合看呢,何況看官呢?
總結(jié)不是意味著結(jié)束,是意味著繼往開(kāi)來(lái)。精彩還在后面,這里只是休息。
更多信息請(qǐng)查看IT技術(shù)專(zhuān)欄