亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

python進階

廖雪峰 移動開發工程師
難度中級
時長 3小時33分
學習人數
綜合評分9.20
575人評價 查看評價
9.6 內容實用
9.0 簡潔易懂
9.0 邏輯清晰
def count():
fs = []
for i in range(1, 4):
def foo(i):
def bar():
return i*i
return bar

fs.append(foo(i))
return fs

f1, f2, f3 = count()
print f1(), f2(), f3()
gcd函數用的其實是歐幾里得算法求最大公約數,也就是初中學的輾轉相除法
sorted = functools.partial(sorted,key=lambda a: a.name.lower())
第三部分:

@performance('ms')
def factorial(n):
return reduce(lambda x,y: x*y, range(1, n+1))

print factorial.__name__
第二部分:
# 即,當該函數完成后,factorial實際上是__performance函數,
# 只是名字變了
@functools.wraps(f)# 這里復制了factorial的函數名
def __performance(*args, **kw):# 傳入factorial修飾前的參數
return
return __performance
return _performance
本節詳解:
第一部分
#coding:utf-8

#上面那一行為了改變編碼方式,不然無法運行
import time, functools

def performance(unit):
# 第一層,調用時,傳入'ms',
# 返回_performance函數
def _performance(f):
# 第二層,調用時,傳入factorial,
# 返回__performance函數,并將其#賦值給factorial
這幾節內容并不難,惡心的是每一節的代碼任務很不清晰,加上小白對于模塊的應用兩眼一抹黑,不覺得難才怪。這幾節很不負責任
這樣就行
def cmp_ignore_case(s1, s2):
if s1.capitalize()==s2.capitalize():
return 0
elif s1.capitalize()>s2.capitalize():
return 1
else:
return -1

print sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case)
def func1(x): #用x接收參數一
def func2(f): #用f接受函數main
@functools.wraps(f)
def func3(*args,**kw):
return f() #調用f()把返回值傳遞給func3
return func3 #func3閉包傳遞出去
return func2 #同理
@func1(參數一)
def main(a,b,c,...):
return
main(a,b,c,...)
print main.__name__ #輸出檢驗是否修正
裝飾器基本框架
def func1(fun):
def func2():
return fun()
return func2
@fun1
def main():
return a
main()

裝飾器運行思路
1.運行func1(main)
2.創建了func2 ()
3.創建結束后調用main()
4.調用main的輸出和返回值保存在func2的返回值中 func2目前未被調用
5.這個時候func(main)運行完畢
6.func(main)的返回值是func2
說實話可能會被噴。僅僅說我個人感覺,教程每個章節都說的比較簡潔,漏了不少知識點,需要自己去查,不然完成不了任務,不過任務題目出的真不錯,我感覺其實可以自己看看其他詳細的課程,然后來這完成課程就好了。
我死纏爛打做到模塊和包的時候,發現大家竟然都跳過了裝飾器和閉包?
這里聽不懂的可以去bilibili搜索:python的閉包與裝飾器 看幾遍就懂了
import math

def is_sqr(x):
if int(math.sqrt(x))**2 == x :
return x

print filter(is_sqr, range(1,101))
很多節課都是沒聽懂,很多地方都沒有說清楚,對于小白來說很不友好
課程須知
本課程是Python入門的后續課程 1、掌握Python編程的基礎知識 2、掌握Python函數的編寫 3、對面向對象編程有所了解更佳
老師告訴你能學到什么?
1、什么是函數式編程 2、Python的函數式編程特點 3、Python的模塊 4、Python面向對象編程 5、Python強大的定制類

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!

本次提問將花費2個積分

你的積分不足,無法發表

為什么扣積分?

本次提問將花費2個積分

繼續發表請點擊 "確定"

為什么扣積分?

舉報

0/150
提交
取消