python基礎(十) 函式高階

2022-05-05 04:21:08 字數 2567 閱讀 8983

>>> graphic = '

三角形'

>>> def

chang():

graphic = '

正方形'

def chang1(): #

內部巢狀的函式命名可相同

graphic = '圓形'

print('

第三層列印

',graphic)

chang1()

print('

第二層列印

',graphic)

>>>chang()

第三層列印 圓形

第二層列印 正方形

>>> print('

第一層列印

',graphic)

第一層列印 三角形

#在各自的命名空間中同名變數不受影響

lambda 函式擁有自己的命名空間,且不能訪問自己引數列表之外或全域性命名空間裡的引數

語法為 lambda [arg1 [,arg2,.....argn]]:expression ,以變數的方式呼叫 sum = lambda arg1, arg2: arg1 + arg2

裝飾器的作用:在原先**不改變的情況擴充套件功能

def

test(f):

definner():

print('

hello')

f()return inner #

返回內部函式物件,內部不呼叫,這種現象稱為『『閉包』』

@test

deflog():

print('

world

')

#@test 相當於執行 log= test(log)

log()

#現在的log()相當於inner()

--------------------hello

world

裝飾器的引數傳遞

def

test(f):

def inner(*arg):

print('

hello')

f(*arg) #

此處f(*arg)是原先login函式的呼叫

return

inner

@test

def login(x=none):

if x == '

xing':

print('

world')

login()

#不傳引數,因為inner函式是可選引數,f(*arg)則中則為預設引數x = none

---------------

#hello

--------------login(

'xing')

---------------

#hello

#world

遞迴函式需設停止遞迴的條件

遞迴**還有**的話,遞迴結束後還會依次執行

def

calc(n):

print

(n )

n = int(n /2) #

50if n >0:

calc(n) #50

print(n)

a = [x for x in range(10)]

b = (x for x in range(10))

print

(a)print

(b)-------------------

#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

#at 0x00505070>

生成器函式

使用yield關鍵字

def

g_test():

while

true:

print('

hello')

n = yield 5 #

yield是暫停並return 5

print

(n)g = g_test() #

必選先執行賦值變數操作

g.__next__() #

剛建立的生成器必須先執行此步

print(g.__next__

())g.send(

'world

') #

send方法可傳送值給n

------------------------hello

none

#執行完第乙個__next__(),n並未賦值,print(n)為none

hello

5 #

yield 5 返回了5 ,print()出來了

world

hello

python基礎 高階函式

把函式作為引數傳入,這樣的函式稱為高階函式,高階函式是函式式程式設計的體現。函式式程式設計就是指這種高度抽象的程式設計正規化。在python中,abs 函式可以完成對數字求絕對值計算。abs 10 10round 函式可以完成對數字的四捨五入計算。round 1.2 1 round 1.9 2def...

十 函式高階

形參中的動態引數 def func a,b,args,c f kwargs print a print b print args print c print kwargs func 9,2,3,4,45,6,c 3 d 45,f pp 9 2 3,4,45,6 3 args 是把實參中多餘的的位置引...

Python基礎 高階函式 Map Reduce

map 函式接受2個引數 1.引數 函式 2.引數 iterable 示例 usr bin env python3 coding utf 8 map 函式的使用 轉換為字串 deffuntion x return str x deftest mlist 1,2,3,4,5 list 1,2,3,4,...