函式名的命名規範和變數是一樣的
函式名其實就是變數
可以作為列表中的元素進行儲存,
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 執 行 傳遞過...