閉包與迭代器

2022-02-25 18:10:15 字數 1104 閱讀 9443

1.python內建函式

def compare(*args):

return

max(args),min(args)

a,b=compare(1,2,3,4,5,6)

print("

max:{},min:{}

".format(a,b))

2.若定義的函式引數為可變型別的變數,若果呼叫改變了此變數,其他可以看到此位置的變數也跟隨改變

def extendlist(val, list=):

return

list

list1 = extendlist(10)

list2 = extendlist(123, )

lis3=extendlist("a"

)print('

list1=%s

' %list1)

print('

list2=%s

' %list2)

print('

list3=%s

' % lis3)

3.閉包

def fun():

name="jack"

def inner():

print(name)

return inner

c=fun()

print(c())

閉包是內層函式對外層函式變數的引用,目的一是為了使變數常駐記憶體,二是為了保證引數的安全性

4.迭代與迭代器

迭代資料型別:str,list,dict,tuple,檔案操作控制代碼

同過dir()查詢類中定義好的方法,查詢是否有__iter__()方法,如若物件中有__iter__()方法,則我們認為次類遵循了迭代協議,可以用此方法獲取迭代器

lis=[1,2,3,4,5]

it=lis.__iter__

()while 1:

try:

c=it.__next__

()

print

(c)

except

: stopiteration

break

11 閉包 迭代器

今日主要內容 第一類物件 函式名 變數名 函式物件物件可以像變數一樣進行賦值 還可以作為列表的元素進行使用 可以作為返回值返回 可以作為引數進行傳遞 閉包 函式的巢狀 內層函式對外層函式中的變數的使用 好處 1.保護變數不被侵害 2.讓乙個變數常駐記憶體 如何通過 檢視乙個閉包 closure 有東...

Lua初識之迭代器與閉包

一 迭代器與閉包 迭代器是一種支援指標型別的結構,它可以遍歷集合的每乙個元素 在lua中我們常常使用函式來描述迭代器,每次呼叫該函式就返回集 合的下乙個元素 寫乙個方法實現迭代 function list iter t local i 0 定義區域性變數 i local n table.getn t...

泛型與閉包實現迭代器

泛型for 第一遍 1020 3040 50泛型for 第二遍 root localhost for cat for1.lua function iter t local i 0 return function i i 1 return t i endend my iter iter 第一種遍歷方式...