函式名的應用和閉包

2021-10-19 20:04:43 字數 1399 閱讀 9449

函式名的命名規範和變數是一樣的

函式名其實就是變數

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

def func1():

pass

def func2():

pass

lst = [func1, func2]

for el in lst:

el()

可以作為引數傳遞給函式

def func():

pass

def proxy(fn): #proxy(**)

fn()

proxy(func)

可以作為函式的返回值

def func():

def inner(): #inner(內部)

pass

return inner

func()()

閉包在內層函式中訪問外層的區域性變數.

好處:1保護你的變數不受外界影響

2可以讓變數常駐記憶體

寫法:def outer():

a = 10

def inner():

print(a)

return inner

outer()()    #錯誤使用方法

ret = outer()

ret()

ret()

ret() #正確使用方法

迭代器

使用 dir #(目錄) 來檢視該資料報含了哪些方法

用來遍歷,字串,元組,…可迭代物件

可迭代物件:iterable, 裡面有__iter__(),可以獲取迭代器,沒有__next__()

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

迭代器的特點:

只能向前

惰性機制

省記憶體(生成器)

for迴圈的內部機制

首先獲取迭代器

使用while迴圈獲取資料

it.next()來獲取資料

處理異常 try:*** except stopiteration

it = xx.iter()

while 1 :

try:

data = it.next()

***x

except stopiteration:

break

from collections import iterable #可迭代物件 collections(收藏)

from collections import iterator #迭代器

print(isinstance(lst, iterable)) # isinstance(等例項)

Python函式名應用 閉包 迭代器

函式名的應用.函式名是乙個變數,但它是乙個特殊的變數,與括號配合可以執行函式的變數.1.函式名的記憶體位址 def func print 呵呵 print func 2.函式名可以賦值給其他變數 def func print 呵呵 print func a func 把函式當成乙個變數賦值給另乙個變...

python notice8 函式名應用和閉包

一 函式名的應用 函式名是乙個特殊的變數,函式名配合括號 函式名 可以執行函式。1.函式名的記憶體位址。def func print 呵呵 print func 結果 2.函式名可以賦值給其他變數,該變數配合括號即可呼叫函式。def func print 呵呵 a func a 相當於呼叫func ...

day 12 函式名的應用 閉包 迭代器

今日主要內容 1,函式名的應用,第一類物件 函式名可以像變數一樣進行使用 再函式名後面新增 才是對函式的呼叫,否則列印的是函式的記憶體位址 1.賦值 2.作為list元素 3.作為引數 def func print 吃了 麼 def func2 fn print 我是func2 fn 執 行 傳遞過...