Python相關知識點

2021-08-28 11:09:41 字數 2451 閱讀 9521

作用:

建立乙個匿名函式物件

用def 類似,但不提供函式名

語法格式:

lamdba [形參1,形參2,…]:表示式

例:def myadd(a,b):

return a + b

|| #等同於

myadd = lamdba a, b: a + b # 表示式

print('10 + 20 =',myadd(10,20))

print('30 + 40 =',myadd(30,40))

說明:

1.lambda 只是乙個表示式,它用來建立乙個函式物件

2.當lambda表示式呼叫時,先執行冒號(?

後的表示式,並返回表示式的結果的引用

3.lambda 表示式建立的函式只能包含一條表示式

4.lambda比函式簡單且可以隨時建立和銷毀,有利於減少程式的偶合度

是指用一系列函式解決問題

函式是一等公民(guido)

1.函式本身可以賦值給變數,賦值後變數繫結函式

2.允許將函式本身作為引數傳入另乙個函式

3.允許函式返回乙個函式

函式直接或間接的呼叫自身

例:def f():

f() #直接呼叫自己,進入遞迴

f()

#函式間接呼叫自身

def fa():

fb()

def fb():

fa()

fa()

print("遞迴完成")

說明:

遞迴一定要控制遞迴的層數,當符合一定條件時要終止遞迴

呼叫幾乎所有的遞迴都能用while迴圈來代替

優點:遞迴可以把問題簡單化,讓思路更為清晰,**更簡潔

缺點:遞迴因系統環境影響大,當遞迴深度太大時,可能會得到不

可預知的結果

遞迴的兩個階段:

遞推階段: 從原問題出發,按遞迴公式遞推從未知到已知,

最終達到遞迴的終止條件

回歸階段: 按遞迴終止條件求除結果,逆向逐步代入遞迴公式

,回歸到問題求解

例:def fn(n):

print(『遞迴進入第』,n,『層』)

if n == 3: #當遞迴進入第三層時,將不再向下走,開始回歸

return

fn(n+1)

print(『遞迴退出第』,n,『層』)

fn(1)

print(『程式結束』)

列:def myfac(n):

if n == 1:

return 1

return n * myfac(n-1)

print(『5的階乘是:』,myfac(5))

閉包是指引用了此函式外部巢狀函式作用域變數的函式

閉包必須滿足三個條件:

1.必須有內嵌函式

2.內嵌函式必須引用外部函式中的變數

3.外部函式返回值必須是內嵌函式.

例子:def make_power(y):

def fn(x):

return x ** y

return fn

pow2 = make_power(2)

print(『5的平方是:』,pow2(5))

pow3 = make_power(3)

print(『6的立方是:』,pow3(6))

什麼是裝飾器

裝飾器是乙個函式,主要作用是用來包裝另乙個函式或類(後面會講)

作用:是在不改變原函式名(或類名)的情況下改變被包裝物件的行為

函式裝飾器:

函式裝飾器是指裝飾器是乙個函式,傳入的是乙個函式,返回的也是乙個函式

語法:def  裝飾器函式名(引數):

語句塊return 函式物件

@裝飾器函式名《換行》

def 函式名(形參列表):

語句塊例:

def mydeco(fn):

def fx():

print(『fx函式被呼叫』)

return fx

# myfunc加了mydeco裝飾器,等同於在myfunc建立之後呼叫

# myfunc = mydeco(myfunc)

@mydeco

def myfunc():

print(『函式myfunc被呼叫』)

#myfunc = mydeco(myfnc) #這樣的寫法可以用裝飾器來代替

myfunc() #這裡呼叫誰?

def mydeco(fn):

def fx():

print(』+++++++++這是myfunc呼叫之前』)

fn()

print(』---------這是myfunc呼叫之後』)

return fx

@mydeco

def myfunc():

print(『函式myfunc被呼叫』)

myfunc()

python相關知識點

關於編碼 在liunx上和蘋果上想實現訊息提醒,作者的 如下 if sys type linux linux try import pynotify except importerror pynotify none elif sys type mac mac import gntp.notifier...

python 類相關知識點

知識點一 hasattr類中是否含有某屬性 hasattr object,name object 物件。name 字串,屬性名。return 如果物件有該屬性返回 true,否則返回 false。class variable x 1 y a z true dd variable print hasa...

python 字典相關知識點

訪問字典中的值 要訪問字典元素,你可以使用方括號和對應鍵,以獲得其對應的值。dict print dict name dict name print dict age dict age 當執行上面的 它產生以下結果 dict name zara dict age 7 如果我們試圖使用乙個鍵,但這是不...