日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

动态参数与global和nonlocal

發(fā)布時間:2023/12/20 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 动态参数与global和nonlocal 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 動態(tài)參數
位置參數的動態(tài)參數: *args
關鍵字參數的動態(tài)參數 : **kwargs
順序:
位置,*args,默認值,**kwargs
在形參上*聚合, **聚合
在實參上*打散, **打散

def chi(good_food, bad_food,drink, ice, jiu):print("我要吃", good_food, bad_food)chi("蓋澆飯", "辣條")位置參數 > *動態(tài)參數 > 默認值參數def chi( *food, a, b): # 可以傳入任意的位置參數print("我要吃", food) # 動態(tài)參數接收到的是tuple類型的數據chi("蓋澆飯", "辣條", "面條") def func(a, b, c, *args, d = 5):print(a, b, c, d, args)func(1,2,3) func(1,2,3,4,5,6,7, d ="馬大哈")def chi(*food):print("我要吃", food)寫函數. 給函數傳遞任意個整數. 返回這些數的和 def he(*n):sum = 0for e in n:sum += ereturn sum print(he(5))動態(tài)接收關鍵字參數*位置參數 **關鍵字參數 def func(**food): # **food動態(tài)接收關鍵字參數print(food) # 接收到的是字典func(good_food="蓋澆飯", bad_food="辣條", drink="冰封")關鍵字參數一定在位置參數后面 位置參數 > *args > 默認值 > **kwargs這個函數可以接收所有的參數(無敵的) def func(*args, **kwargs):print(args)print(kwargs) func(1, 2, 5, 6, name="taibai",age=18, sex="不詳")把列表中的每一個元素作為參數, 傳遞給函數. 一次都傳過去def func(*args, **kwargs): # *表示聚合,所有的位置參數, 聚合成元組 **聚合成字典print(args)print(kwargs)# lst = ["馬虎疼", "大洋哥", "小花生", "毛尖妹妹"] # func(*lst) # 實參, 打散, 迭代產生的dic = {"name":"太白", "alex":"wuse"} func(**dic) # 把字典打散. 以key=value形式進行傳參def func(a, b):"""計算a+b的和, 返回一個數:param a: 第一個數:param b: 第二個數:return: 返回計算之后的和"""return a + b定義函數 def 函數名(形參): 1.位置參數, 2, *args, 3.默認值參數, 4. **kwargs函數體 return 返回值 函數名(實參) 1. 位置參數. 2.關鍵字參數. 3. 混合參數,

  


2. 命名空間和作用域
命名空間:
1. 內置命名空間: python解釋內部運行時的變量函數
2. 全局命名空間: 我們在py文件中直接聲明出來的變量,函數
3. 局部命名空間: 在函數內部聲明的變量和函數.
作用域:
1.全局作用域:內置+全局
2.局部作用域:局部
globals() 查看全局作用域中的名字
locals() 查看當前作用域中的名字

a = "123" # 全局 b = 36 # 全局 def func(): # 全局c = "馬化騰" # 局部def func2():print(c)a = 10 def func():a = 20print(a) # 就近原則print(globals()) # globals() 獲取到全局作用域(內置,全局)中的所有名字print(locals()) # locals() 查看當前作用域中的所有名字 func()

  

3. global和nonlocal
global: 把全局變量拿到局部來用.
nonlocal: 把離他最近的一層的變量拿過來.不會找全局

函數的嵌套 def chi():print("我要吃")print(chi())def func1():print("哈哈")def func2():func1()print("呵呵")func1() func2()def func1():print("呵呵")def func2():print("哈哈")func2()print("吼吼") func1() #def func1():print("趙")def func2():print("錢")def func3():print("孫")print("李")def func4():print("哈哈")func2()print("周")func2() func1()def func():global a # a 不再是局部變量. 是全局變量a = 30 # 把全局中的a重新賦值成30print(a) func() print(a)a = 10 def func1():def func2():nonlocal a # 找局部作用域中 離他最近的那個變量引入進來a = 20print(a)func2()print(a) func1()a = 1 def fun_1():a = 2def fun_2():def fun_3():nonlocal aa = 4print(a)print(a)fun_3()print(a)print(a)fun_2()print(a) print(a) fun_1() print(a)

  

  

轉載于:https://www.cnblogs.com/duanpengpeng/p/9305177.html

總結

以上是生活随笔為你收集整理的动态参数与global和nonlocal的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。