函数的进阶
一.? 函數(shù)的動(dòng)態(tài)傳參
1 chi(*food): 2 print(food) 3 chi('蓋澆飯','拉州拉面','牛肉丸子面','清湯小面') 4 chi('紅燒牛肉面','鎮(zhèn)江鍋蓋面','山西刀削面') 5 chi('陜西褲帶面','新疆拉條子') 6 chi('廣東竹升面') 7 chi()結(jié)果為:
(蓋澆飯', '拉州拉面', '牛肉丸子面', '清湯小面')
('紅燒牛肉面', '鎮(zhèn)江鍋蓋面', '山西刀削面')
('陜西褲帶面', '新疆拉條子')
('廣東竹升面',)
() 1 def chi(**food): 2 print(food) 3 chi(主食='饅頭',副食='臭豆腐',湯='紫菜蛋花湯',水果="桃子",food='牛肉')
結(jié)果:
{'主食': '饅頭', '副食': '臭豆腐', '湯': '紫菜蛋花湯', '水果': '桃子', 'food': '牛肉'}
def fun(*args,**kwargs)
????? print(args,kwargs)
fun(*args,**kwargs)
此函數(shù)的傳參全部概括
另一種動(dòng)態(tài)傳參的方式:
1 def chi(*food): 2 print(food) 3 lst=['煎餅果子','肉夾饃','烤冷面','手抓餅','雞蛋灌餅'] 4 chi(*lst) 5 6 def chi(**food): 7 print(food) 8 dic={'good_food':'大米飯','no_good_food':'豬肉燉粉條','soup':'排骨湯'} 9 chi(**dic)函數(shù)的注釋:
1 def fun(a,b): 2 """ 3 這里是函數(shù)的注釋,先寫當(dāng)前這個(gè)函數(shù)是干什么的 4 :param a:參數(shù)a是什么意思 5 :param b:參數(shù)b是什么意思 6 :return:返回的是什么東西 7 """ 8 fun(a,b)二, 命名空間
全局名稱空間
局部名稱空間
內(nèi)部名稱空間
作用域:
1全局作用域:內(nèi)置+全局
2.局部作用域:局部(函數(shù)被調(diào)用)
globals()查看全家用中的內(nèi)容
locals()查看當(dāng)前作用域中的內(nèi)容
a = 110 # 全局def fn(): # b = 20 # 局部def gn(): # 局部print(globals()) # 可以查看全局作用域中的內(nèi)容print(locals()) # 查看當(dāng)前作用域中的內(nèi)容 gn()fn()?
?三. 函數(shù)嵌套
函數(shù)可以互相嵌套
1 def outer(): 2 print("哈哈") 3 def inner_1(): 4 print("呵呵") 5 def inner_1_1(): 6 print("嘻嘻") 7 inner_1_1() 8 print("吼吼") 9 def inner_2(): 10 print("嘿嘿") 11 inner_2() 12 inner_1() 13 outer()四. global和nonlocal關(guān)鍵字
global:在局部訪問(wèn)全局的內(nèi)容
1 a = 10 # 全局變量本身就是不安全的, 不能隨意修改, 閉包 2 def func(): 3 global a # 1. 可以把全局中的內(nèi)容引入到函數(shù)內(nèi)部 , 2. 在全局創(chuàng)建一個(gè)變量 4 # a = 20 5 a += 10 # a = a+10 6 print(a)nonlocal:在局部尋找外層函數(shù)中離他最近的那個(gè)變量
1 func() 2 print(a) 3 a = 10 4 def outer(): 5 6 def inner(): # 在inner中改變a的值 7 nonlocal a # 尋找外層函數(shù)中離他最近的那個(gè)變量 8 a = 20 9 inner() 10 11 outer()?
轉(zhuǎn)載于:https://www.cnblogs.com/982336352ryan/p/9449699.html
總結(jié)
- 上一篇: 解决U盘无法拷贝大文件问题
- 下一篇: 使用java多线程分批处理数据工具类