*args就是接受實參對應的剩餘的位置引數,並將其放在元組中。在定義函式時,*args代表的是聚合。
def func(*args):(args)
func(1,34,'
jdai
',5,56,66)#(1, 34, 'jdai', 5, 56, 66)
def func(a,b,c,d,*args,e='男'2,**kwargs,動態傳參,只接受關鍵字引數,將所有的關鍵字引數(無意義的)放到乙個字典中。):
(a)
(b)
(c)
(d)
(args)
(e)func(1,2,3,4,5,10,5,6,7,8,e='
女')#123
4(5, 10, 5, 6, 7, 8)
女
最終順序(形參角度)
def func(a,b,c,**kwargs):位置傳參,*args, 預設引數 **kwargs(kwargs)
func(1,3,4,r=6,t=7,y=0)
def func(a,b,c,d,*args,e='3, *號的魔法運用,在函式呼叫執行時,*代表打散。*加可迭代物件(list,tuple,set,str,dict的鍵),代表打散,將元素一一新增到args。男',**kwargs):
(a)
(b)
(c)
(d)
(args)#(5, 10, 5, 6, 7, 8)
(e)
(kwargs)#
func(1,2,3,4,5,10,5,6,7,8,f='
女',g=5,h=48)
def func(*args):(1, 2, 3, 4, 6, 3, 6, 6, 7, 77, 66, 'eqwj', 'ee', 'ui')將元素一一新增到args中。(args)
li = [1,2,3,4,6]
l2 = [3,6,6,7,77,66]
tu = ('
eqwj
','ee
','ui')
func(*li,*l2,*tu)
def func(**kwargs):**字典,代表打散,將所有鍵值對放到乙個kwargs字典裡。(kwargs)
dic =
dic1 =
func(**dic,**dic1)
def func(*args,**kwargs):(1, 3, 4, 5, 'a', 'h', 'd', 'h', 's', 'd', 'k', 'j')(args)
(kwargs)
dic1 =
dic2 =
func(*[1,3,4,5],*'
ahdhsdkj
',**dic1,**dic2)
4,命名空間,也叫命名空間。放置變數與對應的值得關係(記憶體位址的關係)。當執行函式的時候,它會在記憶體中開闢乙個臨時命名空間,存放函式體內的所有變數與值得關係,隨著函式的執行完畢,
臨時空間自動關閉。
全域性命名空間,命名空間,命名空間,全面命名空間。
區域性命名空間,臨時命名空間,臨時命名空間,區域性命名空間。
內建命名空間,所有的內建函式等儲存的空間。
載入順序:
內建命名空間》全域性命名空間》(函式執行時)區域性命名空間
取值順序:
(函式執行時)區域性命名空間》全域性命名空間》內建命名空間
name = '老男孩'
deffunc1():
name ='
taibai
(name)
func1()#taibai
name = '全域性作用域:全域性命名空間,內建命名空間。老男孩'
deffunc1():
#name ='taibai'
(name)
func1()
#老男孩
區域性作用域:區域性命名空間。
5,函式的巢狀
print(111)#1def
func1():
print(333)#
2func2()
print(777)#
4def
func2():
print(444)#
3def
func3():
print(555)
func2()
func1()
print(222)#
5
print(111)#6,globals和locals1def
func1():
print(333)#
2func2()
print(444)#
6def
func2():
print(222)#
3func3()
print(555)#
5def
func3():
print(666)#
4func1()
print(777)#
7
a = 2b = 3deffunc1():
c = 4d = 5
print(globals())#
將全域性變數放在字典中
return locals()#
將區域性變數放在字典中
print(func1())
a = 4global:deffunc1():
b = 6
deffunc2():
nonlocal b
#nonlocal不能修改全域性變數
b = 666
(b) func2()
(b)func1()
1,在區域性空間內,宣告乙個全域性變數。
2,在區域性空間內,改變乙個全域性變數。
globals,全域性命名空間:所有變數。
locals,區域性命名空間:所有變數。
nonlocal:
1,不能修改全域性變數。
2,在區域性作用域中,對父級作用域(或者更外層作用域非全域性作用域)的變數進行引用和修改,並且引用的哪層,從那層及以下此變數全部發生改變。
python學習第12天
一.迭代器 1.概念 迭代器指的是迭代取值的工具,迭代是乙個重複的過程,每次重複都是基於上一次的結果而繼續,單純的重複不是迭代 2.特徵 不依賴索引,通過next指標迭代所有資料,一次只取乙個,可以大大節省空間,迭代無限量的資料 3.可迭代物件 如果成員中含有 iter 這個方法,就是可迭代物件 d...
python學習筆記(二) python基礎函式
python之所以強大好用,離不開可以呼叫的各種庫,同時也和他自身函式相關,下面為學習python函式相關知識後整理知識點。1 python函式引數 python函式定義簡單但靈活度非常大。除正常定義的必選引數外,還可以使用預設引數,可變引數,關鍵字引數。預設引數 def power 5 x 2 在...
Python學習第12天 類
1 類的建立 語法 class 類名 類的屬性 name 喵醬 類的方法 def joke self print 建立類成功 2 類的例項化 語法 例項名 類名 列如 my captain captain 意義 建立乙個例項,它可以呼叫所屬類的所有屬性和方法 知識點 3 self引數 4 init ...