python 的基礎 學習 12天,函式

2022-05-08 01:00:07 字數 3729 閱讀 9358

*args就是接受實參對應的剩餘的位置引數,並將其放在元組中。在定義函式時,*args代表的是聚合。

def func(*args):

print

(args)

func(1,34,'

jdai

',5,56,66)#(1, 34, 'jdai', 5, 56, 66)

def func(a,b,c,d,*args,e='男'

):

print

(a)

print

(b)

print

(c)

print

(d)

print

(args)

print

(e)func(1,2,3,4,5,10,5,6,7,8,e='

女')#123

4(5, 10, 5, 6, 7, 8)

2,**kwargs,動態傳參,只接受關鍵字引數,將所有的關鍵字引數(無意義的)放到乙個字典中。

最終順序(形參角度)

def func(a,b,c,**kwargs):

print

(kwargs)

func(1,3,4,r=6,t=7,y=0)

位置傳參,*args,  預設引數   **kwargs

def func(a,b,c,d,*args,e='

男',**kwargs):

print

(a)

print

(b)

print

(c)

print

(d)

print

(args)#(5, 10, 5, 6, 7, 8)

print

(e)

print

(kwargs)#

func(1,2,3,4,5,10,5,6,7,8,f='

女',g=5,h=48)

3,  *號的魔法運用,在函式呼叫執行時,*代表打散。*加可迭代物件(list,tuple,set,str,dict的鍵),代表打散,將元素一一新增到args。

def func(*args):

print

(args)

li = [1,2,3,4,6]

l2 = [3,6,6,7,77,66]

tu = ('

eqwj

','ee

','ui')

func(*li,*l2,*tu)

(1, 2, 3, 4, 6, 3, 6, 6, 7, 77, 66, 'eqwj', 'ee', 'ui')將元素一一新增到args中。

def func(**kwargs):

print

(kwargs)

dic =

dic1 =

func(**dic,**dic1)

**字典,代表打散,將所有鍵值對放到乙個kwargs字典裡。

def func(*args,**kwargs):

print

(args)

print

(kwargs)

dic1 =

dic2 =

func(*[1,3,4,5],*'

ahdhsdkj

',**dic1,**dic2)

(1, 3, 4, 5, 'a', 'h', 'd', 'h', 's', 'd', 'k', 'j')

4,命名空間,也叫命名空間。放置變數與對應的值得關係(記憶體位址的關係)。當執行函式的時候,它會在記憶體中開闢乙個臨時命名空間,存放函式體內的所有變數與值得關係,隨著函式的執行完畢,

臨時空間自動關閉。

全域性命名空間,命名空間,命名空間,全面命名空間。

區域性命名空間,臨時命名空間,臨時命名空間,區域性命名空間。

內建命名空間,所有的內建函式等儲存的空間。

載入順序:

內建命名空間》全域性命名空間》(函式執行時)區域性命名空間

取值順序:

(函式執行時)區域性命名空間》全域性命名空間》內建命名空間

name = '

老男孩'

deffunc1():

name ='

taibai

'print

(name)

func1()#taibai

name = '

老男孩'

deffunc1():

#name ='taibai'

print

(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)#

1def

func1():

print(333)#

2func2()

print(444)#

6def

func2():

print(222)#

3func3()

print(555)#

5def

func3():

print(666)#

4func1()

print(777)#

7

6,globals和locals

a = 2b = 3

deffunc1():

c = 4d = 5

print(globals())#

將全域性變數放在字典中

return locals()#

將區域性變數放在字典中

print(func1())

a = 4

deffunc1():

b = 6

deffunc2():

nonlocal b

#nonlocal不能修改全域性變數

b = 666

print

(b) func2()

print

(b)func1()

global:

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 ...