詳解python中 的用法

2022-08-22 00:33:14 字數 1985 閱讀 4018

這篇文章主要介紹了python中@的用法,文中通過示例**介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

python中@的用法

@是乙個裝飾器,針對函式,起呼叫傳參的作用。 

有修飾和被修飾的區別,『@function'作為乙個裝飾器,用來修飾緊跟著的函式(可以是另乙個裝飾器,也可以是函式定義)。

**1

def funa(desa):

print("it's funa")

def funb(desb):

print("it's funb")

@funa

def func():

print("it's func")

結果1

it's funa

分析1

@funa 修飾函式定義def func(),將func()賦值給funa()的形參。 

執行的時候由上而下,先定義funa、funb,然後執行funa(func())。 

此時desa=func(),然後funa()輸出『it's funa'。

**2

def funa(desa):

print("it's funa")

def funb(desb):

print("it's funb")

@funb

@funa

def func():

print("it's func")

結果2

it's funa 

it's funb

分析2

@funb 修飾裝飾器@funa,@funa 修飾函式定義def func(),將func()賦值給funa()的形參,再將funa(func())賦值給funb()。 

執行的時候由上而下,先定義funa、funb,然後執行funb(funa(func()))。 

此時desa=func(),然後funa()輸出『it's funa';desb=funa(func()),然後funb()輸出『it's funb'。

**3

def funa(desa):

print("it's funa")

print('---')

print(desa)

desa()

print('---')

def funb(desb):

print("it's funb")

@funb

@funa

def func():

print("it's func")

結果3

it's funa

< function func at 0x000001a5ff763c80 > 

it's func

it's funb

分析3

同上,為了更直觀地看引數傳遞,列印desa,其傳的是func()的位址,即desa現在為函式desa()。 

執行desa()即執行func(),desa=desa()=func()。

**4

def funa(desa):

print("it's funa")

def funb(desb):

print("it's funb")

print('---')

print(desb)

@funb

@funa

def func():

print("it's func")

結果4

it's funa 

it's funb

none

分析4

上面將func()作為引數傳給funa,那麼funa(func())怎麼傳給funb()呢?列印desb,發現並沒有引數傳遞。 

是否可以理解為當『裝飾器' 修飾 『裝飾器'時,僅是呼叫函式。

詳解 python 詳解python中 的用法

python中 的用法 是乙個裝飾器,針對函式,起呼叫傳參的作用。有修飾和被修飾的區別,function作為乙個裝飾器,用來修飾緊跟著的函式 可以是另乙個裝飾器,也可以是函式定義 結果1it s funa分析1 funa 修飾函式定義def func 將func 賦值給funa 的形參。執行的時候由...

詳解python 中in 的 用法

in在python中是操作符,具體來說是成員操作符。就是對於序列 字串,元組,列表 或集合 set 或對映 字典 這些資料型別做成員判斷,自然成員判斷的返回是在其中和不在其中,用python的說法就是true,false 也就是說xxin 是可以用在諸如 if程式設計客棧 xx in while x...

python中 的用法詳解

1 表示乘號 2 表示倍數,例如 def t msg,t程式設計客棧ime 1 print msg time t hi 3 列印結果 列印3次 hi hi hi 3 單個 1 如 parameter是用來接受任意多個引數並將其放在乙個元組中。def demo p print 程式設計客棧p demo...