day 10 函式名,閉包,迭代器

2022-05-30 21:42:08 字數 1716 閱讀 7603

1. 函式名的使用

1.函式名是乙個變數,函式名儲存的是函式的記憶體位址

2.函式名可以賦值給其他變數

3.函式名可以當容器類物件的元素

4.函式名可以當其他函式的引數

5.函式名可以做函式的返回值

2.閉包:閉包就是內層函式對外層函式(非全域性)變數的使用

1.閉包的作用

1.可以保護變數不收侵害

2.常用變數常駐記憶體

2.閉包的判斷

1.print(函式名._closure_) 返回值為cell表示閉包,返回值為none表示不是閉包

2.閉包後內層函式怎麼訪問外層函式?

一層層返回就行

列:def func1():

def func2():

def func3():

print("嘿嘿")

return func3

return func2

func1()()()

3

.迭代器

1.檢視變數能夠執行的方法 dir

2.itrator:迭代器,具有的方法 _iter_(),_next_()

3.iterable:可迭代的物件 具有的方法 _iter_()

for迴圈的機制

i=lst._iter_()

while1:

try:

el=i._next_()

print(el)

except stopitration

break

從迭代器中獲取元素的唯一方法_next_

4.三個特徵:

1.省記憶體

2.惰性機制

3.只能向前(迭代器是一次性用品,想返回只能重新獲取迭代器)

4

.如何判斷物件是否可迭代

1.print(dir(物件)) 出現了_iter_->可迭代物件

2.print(dir(物件)) 出現了_next_->迭代器

print(

"__iter__"in

dir(lst)) # true 可迭代的

print(

"__next__"in

dir(lst)) # false 不是迭代器

i=xx._iter_(),能夠執行的話,i就是乙個迭代器,迭代器本身是可迭代的

3.from

cellection import iterable,itreator

print(isinstance(lis,itreable)) true

print(isinstance(lis,itreator)) false

5

.關聯的小點

1.defunc(a,b)

'''文件注釋

這個函式用來計算兩個數的和並返回

:param a: 第乙個數

:param b: 第二個數

:return

: 第乙個數和第二個數的和

author:sylar

date:

2018-10-31

''' print("

我是func")

return a +b

print(func.__doc__) # document 文件注釋

print(func.__name__) # name 名字 獲取函式名

python之路 day10 閉包函式

1.命名關鍵字引數 格式 在 後面的引數都是命名關鍵字引數 特點 1.必須被傳值 2.約束函式的呼叫者必須按照key value的形式傳值 3.約束函式的呼叫者必須用我們指定的key名 1 def auth args,kwargs 2 3使用方式auth name egon pwd 123 4 pa...

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

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

Python函式名應用 閉包 迭代器

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