新聞中心
這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
【python函數(shù)】函數(shù)-創(chuàng)新互聯(lián)
// 函數(shù)使用期間:變量的作用域一定要注意,主要體現(xiàn)在 1. 變量作用域內(nèi)是否被定義 2. 可變對(duì)象傳參是否會(huì)被修改
1. 函數(shù)命名空間
概念:內(nèi)存中變量名和對(duì)象的對(duì)應(yīng)關(guān)系 // 字典
// 每個(gè)命名空間都是獨(dú)立的存在,可以存在相同名字的變量
分類(lèi):
1. 局部命名空間:函數(shù)所擁有的命名空間,記錄了函數(shù)中定義的變量、入?yún)⒌? 2. 全局命名空間:模塊級(jí)的命名空間 // 模塊加載時(shí)創(chuàng)建
3. 內(nèi)置命名空間:放置內(nèi)置函數(shù)和異常 // 任何地方都可以使用
生命周期:
1. 函數(shù)調(diào)用時(shí)創(chuàng)建、執(zhí)行結(jié)束或拋異常刪除
2. 模塊加載時(shí)創(chuàng)建,一直在python解釋器退出
3. python解釋器創(chuàng)建時(shí)創(chuàng)建
*注意*
python解釋器加載期間,會(huì)加載出內(nèi)置命名空間和全局命名空間,局部命名是在調(diào)用時(shí)創(chuàng)建,函數(shù)調(diào)用結(jié)束自動(dòng)退出。
2. 函數(shù)作用域
作用域:針對(duì)變量,指的是變量的可用范圍 // 其實(shí)作用域就是指的命名空間內(nèi)變量的作用范圍
分類(lèi):
只有函數(shù)、類(lèi)、模塊有作用域,代碼塊沒(méi)有作用域
// 變量查找范圍 LEGB
1. 局部作用域
2. 嵌套作用域
3. 全局作用域
4. 內(nèi)置作用域
兩個(gè)特殊參數(shù):
1. global // 使得內(nèi)部作用域內(nèi)的變量可以修改全局變量
2. nolocal // 使用內(nèi)部作用域內(nèi)的變量可以修改嵌套作用域內(nèi)的變量
工廠(chǎng)函數(shù)和嵌套作用域 // 內(nèi)層函數(shù)都是可以記住頂層函數(shù)的狀態(tài)
"""
def func():
x = 1
def action():
x = 1
pass
return action // 此處的action函數(shù)會(huì)記住外層函數(shù)func的變量
"""
3. 函數(shù)參數(shù)
可變對(duì)象傳參和不可變對(duì)象傳參
1. 不可變對(duì)象:值傳遞,內(nèi)部不可修改
2. 可變對(duì)象:指針傳遞,內(nèi)部可以修改
避免可變對(duì)象傳參的修改
1. 調(diào)用時(shí)拷貝,避免在函數(shù)內(nèi)部修改外部可變對(duì)象
func(a,b[:])
2. 函數(shù)內(nèi)部進(jìn)行拷貝
func(a,b):
b = b [:]
可變參數(shù)類(lèi)型
# 函數(shù)頭部:收集任意數(shù)量的參數(shù)
*args ==> args會(huì)是一個(gè)元祖
**args ==> args會(huì)是一個(gè)字典
4. lambda表達(dá)式
5. 內(nèi)置函數(shù)
1. map函數(shù)
list(map(lambda x:x + 2,[1,2,3,4])) => [3,4,5,6] // map對(duì)序列中每個(gè)元素執(zhí)行相同的操作
2. filter函數(shù)
list(map(lambda x:x > 3,[1,2,3,4,5])) => [4,5] // 返回結(jié)果為T(mén)rue的元素
3. reduce函數(shù)
from functools import reduce
reduce(lambda x,y:x+y,[1,2,3,4]) => 10 // python3 reduce已經(jīng)移到內(nèi)置命名空間里面
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。
新聞標(biāo)題:【python函數(shù)】函數(shù)-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://fisionsoft.com.cn/article/dgisig.html