python學習第02篇-20181030
阿新 • • 發佈:2018-12-13
今天主要學習了python的各種函式引數傳遞,函式回撥與閉包,yield關鍵字的用法等,筆記與程式碼放在了一起,如下:
print("------函式------") ''' 引數結構: 1.傳統引數傳遞 無引數傳遞 固定引數傳遞 2.預設引數傳遞 3.未知個數引數傳遞 4.帶鍵引數傳遞 ''' def fun(): print("無引數傳遞") def fun2(x): # 固定引數傳遞 print(x) def fun3(x, y=100, z='hello'): # 預設引數傳遞 print(x, y, z) def fun4(name, *args): # 未知引數個數傳遞 print(name) for arg in args: print(arg) fun4('hello', '1', '2') def fun5(**kwargs): # 帶鍵引數傳遞 print(type(kwargs)) for x in kwargs: print(x, kwargs[x]) fun5(x=1, y=2, z=3) ''' 回撥函式又叫函式回撥: 將函式作為引數傳遞到另外的函式中執行。 ''' def fun6(func, args): # 函式回撥 func(args) def f1(x): print(x) fun6(f1, '這是函式回撥') ''' 閉包: 函式回撥是將函式作為引數傳遞,閉包是將函式作為返回值返回 ''' def say(word): # 閉包 def name(name): print(word, name) return name hi = say('你好') hi('小明') print("---------yield----------") ''' yield 關鍵字的作用就是把一個函式變成一個generator(生成器) 帶有yield的函式不再是一個普通函式,python解析器會將其視為一個generator 若將下面的yield i 改為print(i)將得不到迭代(Iterable)的效果 ''' def fun7(n): i = 0 while i < n: yield i i += 1 for i in fun7(10): print(i)