4 01day11函式定義域 閉包函式簡介

2022-08-11 04:03:19 字數 2186 閱讀 2964

今日內容:

1、函式物件

2、命名空間

3、函式的巢狀定義

4、作用域

5、閉包函式

一、函式物件

函式名存放了函式的記憶體位址,存放了記憶體位址的變數都是物件,即 函式名 就是 物件

函式物件的應用:

1、可以直接引用

2、可以當做 函式引數 傳遞

3、可以作為函式的返回值

def fn():

print('hello')

def fn1():

print('world')

return fn

res = fn1() # fn1()的值為 函式fn1 的return值,即fn

res() # 即 此為 fn(),呼叫了 函式fn

4、可以作為容器型別的元素

二、命名空間

命名空間:存放名字與記憶體空間位址對應關係的容器

作用:解決由於名字有限,導致名字重**生衝突的問題

三種命名空間:

1. 內建 命名空間 # python直譯器內建的函式名的存放位置

2. 全域性 命名空間 # 頂級變數名的存放位置,即最高縮排級的變數名,包括頂級的if,while內的變數

3. 區域性 命名空間 # 函式中的變數名的存放位置

這三個命名空間的變數可以共存,即同乙個變數名可以同時存在於三個命名空間中

注意:del 名字:可以移除查詢最近的名字與記憶體空間位址的對應關係

載入順序:內建》全域性》區域性 | built-in > global > local

三、函式巢狀定義

在函式內定義函式的操作就是函式的巢狀定義

def outer():

num = 20

def inner():

print(num) # inner就可以直接使用outer中的名字

inner()

outer()

# 將函式直接定義到另乙個函式內部,就可以使用外部函式的中的名字

四、作用域

作用域:名字起作用的範圍

作用:解決同名字可以共存問題

四種作用域

built-in:內建作用域,所有檔案所有函式

global:全域性作用域,當前檔案所有函式

enclosing:巢狀作用域,當前函式與當前函式的內部函式

local:區域性作用域,當前函式

注:不同作用域之間名字不衝突,以達到名字的重用

查詢順序:區域性》巢狀》全域性》內建 | local > enclosing > global > built-in

len = 10

def outer():

len = 20 # 外層函式的區域性變數:enclosing - 巢狀作用域

def inner():

len = 30

print('1:', len) # 30, inner -> outer -> global -> built-in

inner()

print('2:', len) # 20, outer -> global -> built-in

outer()

print('3:', len) # 10, global -> built-in

del len

print('4:', len) # len位址, built-in

5、閉包

# closure:被包裹的函式,稱之為閉包

# 完整的閉包結構:

1.將函式進行閉包處理

2.提公升函式名的作用域,將內部函式物件作為外部函式的返回值

def outer(url):

def get_html():

html = requests.get(url)

print(html.text)

return get_html

# 先預定義多個爬蟲方法,爬頁面操作並未執行

# 什麼時候想爬什麼頁面就呼叫指定頁面的爬蟲方法

對數函式定義域和值域為r 函式的定義域(高中)

函式的定義域是我們上了高中後接觸到的新的名詞,其實相關知識我們早有接觸,其實它就是我們之前學習函式中自變數x的取值範圍,到了高中我們將這個取值範圍定義為函式的定義域。那如何理解定義域呢?數學總是抽象難理解的,函式更上如此,所以相當一部分同學聽到函式就頭皮發麻。所以為了了解抽象的定義域我先從具體的事例...

定義域是取交集嗎 數學提高復合函式定義域求法

復合函式定義域求法 對於復合函式f g x 其定義域仍為x的取值範圍,而不是g x 的範圍。相同法則下的函式f x f g x 與f h x 對應的x g x 與h x 的範圍相同。復合函式定義域 若函式y f u 的定義域是b,u g x 的定義域是a,則復合函式y f g x 的定義域是d 綜合...

geogebra中函式的定義域的輸入

ggb中函式的輸入有如下幾種方式 一 如果if做法 1 區間函式 做出函式在某區間上的圖象 f x if x 0 x 2,x 2 2x 1 2 分段函式 做出分段函式的圖象 f x if x 0 x 2,x 2 2x 1,if x 2 x 4,x 3 2x 1 3 逐點序列函式 逐點做出函式的影象 ...