Python學習記錄3

  • 為什么匿名函數(shù)叫匿名函數(shù)?

Lambda 函數(shù)又稱匿名函數(shù)杯道,匿名函數(shù)就是沒有名字的函數(shù),函數(shù)沒有名字也行责蝠?當然可以啦党巾。有些函數(shù)如果只是臨時一用,而且它的業(yè)務邏輯也很簡單時霜医,就沒必要非給它取個名字不可齿拂。
好比電影里面的群眾演員,往往他們的戲份很少肴敛,最多是襯托主演署海,跑跑龍?zhí)祝麄冃枰謫嵋侥校坎恍枰局叮驗樗麄儍H僅只是臨時出鏡,下次可能就用不著了昨登,所以犯不著費心思給他們每個人編個號取個名字趾代,畢竟取個優(yōu)雅的名字是很費勁的事情。

引用自這里丰辣,這篇博文還提到了python應用的兩個場合撒强,函數(shù)式編程和閉包

  • 閉包
    閉包跟程序里面有函數(shù)的區(qū)別是,后者是直接在母函數(shù)內執(zhí)行笙什,而前者返回定義的子函數(shù)飘哨。
    閉包使得局部變量可以在函數(shù)外面被訪問,有點像只有一個方法的類琐凭。

請參考這里

  • python中的函數(shù)究竟是什么芽隆?聽說類也可以作為函數(shù)調用是怎么回事?

這里

  • 神馬都是對象统屈,不僅函數(shù)是對象胚吁,連類都是對象。

  • 類方法和靜態(tài)方法
    類是一個對象愁憔,對象可以有方法腕扶,類方法就是跟類綁定在一起的方法;靜態(tài)方法跟普通函數(shù)最大的不同就是要用類或者實例進行調用吨掌。

  • for循環(huán)的運行過程
    首先調用方法iter獲取迭代器半抱,每次循環(huán)調用next獲取元素

  • 函數(shù)跟方法居然不一樣E !A蕖炼幔!
    定義在類中的不一定就是方法,方法和函數(shù)的主要區(qū)別還是是否從屬于某個實例史简。要將類里面的當作函數(shù)乃秀,我們要輸入一個類,還記得我們定義類中的方法的時候輸入一個self參數(shù)了嗎乘瓤?
    更加詳細見這里

  • 為什么定義方法的時候一定要輸入?yún)?shù)self呢环形?
    策泣?衙傀?

  • 為什么有了列表還要有元組?
    詳細請見這里
    兩者的區(qū)別:最重要的一點是tuple是不可變類型萨咕,大小固定统抬,而 list 是可變類型、數(shù)據(jù)可以動態(tài)變化危队。

不可變所以操作起來快聪建,占用空間少。
元組不可變可以當作字典的鍵茫陆,

  • python常犯錯誤
    注意4金麸、5、6

  • ==和is的區(qū)別
    ==強調的是值的相等簿盅,而is是內存地址的相同與否

  • 變量是對象的一個引用挥下,參數(shù)就是變量。
    變量本身沒有類型信息桨醋,類型信息存儲在對象中棚瘟,這和C/C++中的變量有非常大的出入(C中的變量是一段內存區(qū)域)

  • Python 函數(shù)中,參數(shù)是傳值喜最,還是傳引用偎蘸?

  • 生成器與迭代器的區(qū)別
    功能一樣,但是實現(xiàn)不一樣瞬内,前者更加優(yōu)雅迷雪,生成器就像ios,迭代器就像android

  • 代碼這樣寫更優(yōu)雅
    注意3(使用enumerate)虫蝶、4(字符串連接)振乏、8(該使用隊列的地方要使用隊列)、9(序列解包)秉扑、

  • 代碼這樣寫不止于優(yōu)雅

  • enumerate用法
colors = ['red', 'green', 'blue', 'yellow']
for color in enumerate(colors):
    print ('--->', color)

輸出:

---> (0, 'red')
---> (1, 'green')
---> (2, 'blue')
---> (3, 'yellow')

這樣可以方便我們這樣子寫

colors = ['red', 'green', 'blue', 'yellow']

for i, color in enumerate(colors):
    print (i, '--->', color)

輸出:

0 ---> red
1 ---> green
2 ---> blue
3 ---> yellow
  • 如何讓字符串連接更高效

字符串連接時慧邮,普通的方式可以用 + 操作

names = ['raymond', 'rachel', 'matthew', 'roger',
         'betty', 'melissa', 'judith', 'charlie']
s = names[0]
for name in names[1:]:
    s += ', ' + name
print (s)

pythonic

print (', '.join(names))

join 是一種更加高效的字符串連接方式调限,使用 + 操作時,每執(zhí)行一次+操作就會導致在內存中生成一個新的字符串對象误澳,遍歷8次有8個字符串生成耻矮,造成無謂的內存浪費。而用 join 方法整個過程只會產生一個字符串對象忆谓。

  • 隊列
from collections import deque
names = deque(['raymond', 'rachel', 'matthew', 'roger',
               'betty', 'melissa', 'judith', 'charlie'])
names.popleft()
names.appendleft('mark')
  • 遍歷字典的高效方法
    方法一每次都要計算hash值裆装,方法二在python3中使用迭代器
# 方法一
for k in d:
    print (k, '--->', d[k])

# 方法二
for k, v in d.items():
    print (k, '--->', v)
  • 獲取字典元素
d = {'name': 'foo'}
if d.has_key('name'):
    print(d['name'])
else:
    print('unkonw')

pythonic

d.get("name", "unknow")
  • 字符編解碼理解
    解碼通常是將密文解為明文,字節(jié)流是比較晦澀的倡缠,而字符串是比較明朗哨免,因此,編解碼如下
Paste_Image.png

更多編碼的知識請看這里

  • i += x 與 i = i + x的區(qū)別

  • 元類就是類的類昙沦,真正的類
    平常的我們所說的類其實也是一種對象琢唾,創(chuàng)建這些類(其實是對象)的類
    詳細看這里

  • 協(xié)程
    協(xié)程是消費者,有點像回調函數(shù)盾饮,得到數(shù)據(jù)的地方用yield采桃。
    首先生產者將消費者作為參數(shù)調入,在生產者中生產出數(shù)據(jù)后丘损,調用消費者.send普办,這個時候就會回去消費中消費數(shù)據(jù),然后再回來徘钥。

def consumer():
    r = ''
    while True:
        n = yield r
        if not n:
            return
        print('[CONSUMER] Consuming %s...' % n)
        r = '200 OK'

def produce(c):
    c.send(None)
    n = 0
    while n < 5:
        n = n + 1
        print('[PRODUCER] Producing %s...' % n)
        r = c.send(n)
        print('[PRODUCER] Consumer return: %s' % r)
    c.close()

c = consumer()
produce(c)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末衔蹲,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子呈础,更是在濱河造成了極大的恐慌舆驶,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,640評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件猪落,死亡現(xiàn)場離奇詭異贞远,居然都是意外死亡,警方通過查閱死者的電腦和手機笨忌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評論 3 395
  • 文/潘曉璐 我一進店門蓝仲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人官疲,你說我怎么就攤上這事袱结。” “怎么了途凫?”我有些...
    開封第一講書人閱讀 165,011評論 0 355
  • 文/不壞的土叔 我叫張陵垢夹,是天一觀的道長。 經常有香客問我维费,道長果元,這世上最難降的妖魔是什么促王? 我笑而不...
    開封第一講書人閱讀 58,755評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮而晒,結果婚禮上蝇狼,老公的妹妹穿的比我還像新娘。我一直安慰自己倡怎,他們只是感情好迅耘,可當我...
    茶點故事閱讀 67,774評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著监署,像睡著了一般颤专。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上钠乏,一...
    開封第一講書人閱讀 51,610評論 1 305
  • 那天栖秕,我揣著相機與錄音,去河邊找鬼缓熟。 笑死累魔,一個胖子當著我的面吹牛摔笤,可吹牛的內容都是我干的够滑。 我是一名探鬼主播,決...
    沈念sama閱讀 40,352評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼吕世,長吁一口氣:“原來是場噩夢啊……” “哼彰触!你這毒婦竟也來了?” 一聲冷哼從身側響起命辖,我...
    開封第一講書人閱讀 39,257評論 0 276
  • 序言:老撾萬榮一對情侶失蹤况毅,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后尔艇,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體尔许,經...
    沈念sama閱讀 45,717評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,894評論 3 336
  • 正文 我和宋清朗相戀三年终娃,在試婚紗的時候發(fā)現(xiàn)自己被綠了味廊。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,021評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡棠耕,死狀恐怖余佛,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情窍荧,我是刑警寧澤辉巡,帶...
    沈念sama閱讀 35,735評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站蕊退,受9級特大地震影響郊楣,放射性物質發(fā)生泄漏憔恳。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,354評論 3 330
  • 文/蒙蒙 一净蚤、第九天 我趴在偏房一處隱蔽的房頂上張望喇嘱。 院中可真熱鬧,春花似錦塞栅、人聲如沸者铜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽作烟。三九已至,卻和暖如春砾医,著一層夾襖步出監(jiān)牢的瞬間拿撩,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評論 1 270
  • 我被黑心中介騙來泰國打工如蚜, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留压恒,地道東北人。 一個月前我還...
    沈念sama閱讀 48,224評論 3 371
  • 正文 我出身青樓错邦,卻偏偏與公主長得像探赫,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子撬呢,可洞房花燭夜當晚...
    茶點故事閱讀 44,974評論 2 355

推薦閱讀更多精彩內容