// 函數(shù)使用期間:變量的作用域一定要注意,主要體現(xiàn)在 1. 變量作用域內(nèi)是否被定義 2. 可變對(duì)象傳參是否會(huì)被修改
創(chuàng)新互聯(lián)是專(zhuān)業(yè)的石城網(wǎng)站建設(shè)公司,石城接單;提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專(zhuān)業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行石城網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專(zhuān)業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專(zhuān)業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
概念:內(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)退出。
作用域:針對(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)的變量
工廠函數(shù)和嵌套作用域 // 內(nèi)層函數(shù)都是可以記住頂層函數(shù)的狀態(tài)
"""
def func():
x = 1
def action():
x = 1
pass
return action // 此處的action函數(shù)會(huì)記住外層函數(shù)func的變量
"""
可變對(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è)字典
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)置命名空間里面
本文題目:【python函數(shù)】函數(shù)
當(dāng)前URL:http://bm7419.com/article34/gejdse.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、Google、微信公眾號(hào)、服務(wù)器托管、網(wǎng)站營(yíng)銷(xiāo)、小程序開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)