日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

函数(三)

發(fā)布時間:2024/4/17 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 函数(三) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.函數(shù)名的應(yīng)用(第一類對象)

  函數(shù)名的命名規(guī)范和變量是一樣的

  函數(shù)名其實就是變量名

  1.可以作為列表中的元素進行存儲

    

1 def func1(): 2 pass 3 def func2(): 4 pass 5 lst = [func1,func2] 6 for el in lst: 7 el()

  2.可以作為參數(shù)傳遞給函數(shù)

 

1 def fun(): 2 pass 3 def proxy(fn): 4 fn() 5 proxy(func)

  3.可以作為函數(shù)的返回值

1 def fun(): 2 def inner(): 3 pass 4 return inner 5 fun()()

2.閉包

閉包:在內(nèi)層函數(shù)中訪問外層函數(shù)的局部變量

好處:

  1.保護你的變量不受外界影響

  2.可以讓變量常駐內(nèi)存

  3.寫法:

    

1 def outer(): 2 a = 10 3 def inner(): 4 print(a) 5 return inner

3.迭代器

使用dir來查看該數(shù)據(jù)包含了哪些方法

1 print(dir(str))#有__iter__ 2 print(dir(int))#沒有__iter__ 3 print(dir(list))#有__iter__

4 print(dir(tuple))#有__iter__

?

用來遍歷字符串,列表,元組...等可迭代對象

可迭代對象:iterable,里面有__iter__()可以獲取迭代器,沒有__next__()

迭代器:iterator,里面有__iter__()可以獲取迭代器,有__next__()

所有的帶__iter__可以使用for循環(huán),是可迭代對象

可迭代對象可以使用__iter__()來獲取迭代器,迭代器里面有__next__()


迭代器的特點:

  1.只能向前

  2.惰性機制

  3.省內(nèi)存(生成器)

迭代器模擬for循環(huán):

  

1 lst = [1,2,3,4,5] 2 for el in lst: 3 print(el) 4 5 lst = [1,2,3,4,5] 6 it = lst.__iter__()#獲取迭代器 7 while 1: 8 try:#嘗試執(zhí)行 9 el = it.__next__() 10 print(el) 11 except StopIteration:#處理錯誤 12 break

?

通過dir來判斷數(shù)據(jù)是否是可迭代的,以及數(shù)據(jù)是否是迭代器

1 print("__iter__" in dir(it)) 2 print("__next__" in dir(it))

通過isinstance()來判斷

1 from collections inport Iterable#可迭代對象 2 from collections import Iterator#迭代器 3 4 5 print(isstance(lst,Iterable)) 6 print(isstance(lst,Iterator))

把參數(shù)放在list()里面進行迭代

1 lst = [1,2,3,4,5] 2 it = lst.__iter__() 3 s = list(it) 4 print(s)

結(jié)果為[1,2,3,4,5]

for 循環(huán)的內(nèi)部機制:

  1.首先獲取到迭代器

  2.使用while循環(huán)獲取數(shù)據(jù)

  3.it.__next__()來獲取數(shù)據(jù)

  4.處理異常  tyr:xxx  except StopIteration:xxx

  

1 it = xx.__iter__() 2 while 1: 3 try: 4 data = it.__next__() 5 xxx 6 except StopIteration: 7 break

?

轉(zhuǎn)載于:https://www.cnblogs.com/s593941/p/9455775.html

總結(jié)

以上是生活随笔為你收集整理的函数(三)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。