他說(shuō)python的第一個(gè)缺點(diǎn)是慢,第二個(gè)缺點(diǎn)是代碼不保密。還蠻有趣的。
這個(gè)分情況討論還蠻科學(xué)的
#!/usr/bin/python是告訴操作系統(tǒng)執(zhí)行這個(gè)腳本的時(shí)候,調(diào)用/usr/bin下的python解釋器#!/usr/bin/env python這種用法是為了防止操作系統(tǒng)用戶沒(méi)有將python裝在默認(rèn)的/usr/bin路徑里。當(dāng)系統(tǒng)看到這一行的時(shí)候,首先會(huì)到env設(shè)置里查找python的安裝路徑,再調(diào)用對(duì)應(yīng)路徑下的解釋器程序完成操作。chmod a+x :給所有人(all)加上可執(zhí)行(x)權(quán)限
小知識(shí)點(diǎn)記一下
分行輸出
動(dòng)態(tài)語(yǔ)言
地板除
tuple的“不變”指的是tuple的每個(gè)元素指向永遠(yuǎn)不變。但是有些元素的內(nèi)容可變。
字符串是不可變對(duì)象。
默認(rèn)參數(shù)會(huì)有坑。
可變參數(shù)。nums是一個(gè)list,*nums是拆開(kāi)list,函數(shù)內(nèi)部的numbers是元素組成的tuple。
關(guān)鍵字參數(shù)。info是一個(gè)dict,**info是拆開(kāi)dict,相當(dāng)于city='beijing', gender='female',函數(shù)內(nèi)部的kw是元素組成的dict。
如果要限制關(guān)鍵字參數(shù)的名字,就可以用命名關(guān)鍵字參數(shù)。
參數(shù)組合,哪天報(bào)錯(cuò)了再來(lái)看。
漢諾塔,棋盤(pán)放米,都是2^64-1
在for循環(huán)中迭代索引和元素
迭代器
map()函數(shù)接收兩個(gè)參數(shù),一個(gè)是函數(shù),一個(gè)是Iterable,map將傳入的函數(shù)依次作用到序列的每個(gè)元素,并把結(jié)果作為新的Iterator返回。
reduce()函數(shù)
filter()函數(shù)
偏函數(shù)
私有變量
鴨子類型
dir()
__slots__限制實(shí)例屬性
Python內(nèi)置的@property裝飾器就是負(fù)責(zé)把一個(gè)方法變成屬性調(diào)用的
__str__定義print實(shí)例時(shí)顯示的內(nèi)容
__repr__是為調(diào)試服務(wù)的,定義直接敲實(shí)例變量時(shí)顯示的內(nèi)容
定義一個(gè)__call__()方法,就可以直接對(duì)實(shí)例進(jìn)行調(diào)用
pickle模塊來(lái)實(shí)現(xiàn)序列化
json
json序列化class
linux版本多進(jìn)程fork函數(shù)
跨平臺(tái)版本的多進(jìn)程multiprocessing模塊
pool進(jìn)程池
多線程threading模塊