下面的表格中列出了已經(jīng)學習過的數(shù)據(jù)類型,也是python的核心數(shù)據(jù)類型之一部分,這些都被稱之為內(nèi)置對象。
對象,就是你面對的所有東西都是對象,看官要逐漸熟悉這個稱呼。所有的數(shù)據(jù)類型,就是一種對象。英文單詞是object,直接的漢語意思是物體,這就好像我們在現(xiàn)實中一樣,把很多我們看到和用到的都可以統(tǒng)稱為“東西”一樣。“東西”就是“對象”,就是object。在編程中,那個所謂面向?qū)ο?,也可以說成“面向東西”,是嗎?容易有歧義吧。
對象類型 舉例
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"}
不論任何類型的數(shù)據(jù),只要動用dir(object)或者help(obj)就能夠在交互模式下查看到有關(guān)的函數(shù),也就是這樣能夠查看相關(guān)幫助文檔了。舉例:
代碼如下:
>>> dir(dict)
看官需要移動鼠標,就能夠看全(下面的本質(zhì)上就是一個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']
先略過__雙下劃線開頭的哪些,看后面的,就是dict的內(nèi)置函數(shù)。至于詳細的操作方法,通過類似help(dict.pop)的方式獲得。這是前面說過的,再說一遍,加深印象。
我的觀點:學習,重要的是學習方法,不是按部就班的敲代碼。
今天既然是復習,就要在原來基礎(chǔ)上提高一點。所以,也要看看上面那些以雙下劃線開頭的東西,請看官找一下,有沒有發(fā)現(xiàn)這個:"__doc"。這是什么,它是一個文件,里面記錄了對當前所查看的對象的詳細解釋??梢栽诮换ツJ较逻@樣查看:
>>> dict.__doc__
顯示應該是這樣的:
代碼如下:
"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符號,這是什么?前面在講述字符串的時候提到了轉(zhuǎn)義符號\,這是換一行。也就是說,如果上面的文字,按照排版要求,應該是這樣的(當然,在文本中,如果打開,其實就是排好版的樣子)。
代碼如下:
"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)"
可能排版還是不符合愿意。不過,看官也大概能看明白了。我要說的不是排版,要說的是告訴看官一種查看某個數(shù)據(jù)類型含義的方法,就是通過obj.doc文件來看。
嘿嘿,其實有一種方法,可以看到排版的結(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)
上面那么折騰一下,就是為了湊篇幅,不然這個總結(jié)的東西太少了。
總之,只要用這種方法,你就能得到所有幫助文檔,隨時隨地。如果可以上網(wǎng),到官方網(wǎng)站,是另外一種方法。
還需要再解釋別的嗎?都多余了。唯一需要的是看官要能會點英語。不過我相信看官能夠讀懂,我這個二把刀都不如的英語水平,還能湊合看呢,何況看官呢?
總結(jié)不是意味著結(jié)束,是意味著繼往開來。精彩還在后面,這里只是休息。
更多信息請查看IT技術(shù)專欄