簡體   English   中英

將帶有 arguments 的 function 傳遞給 function (python) 時出現語法錯誤

[英]Syntax error when passing function with arguments to a function (python)

學習裝飾器,我想將帶有 arguments 的 function 傳遞給裝飾器 function ,如下所示,但我總是遇到語法錯誤。 請幫忙!

def decorator(func(*args)):
    def wrapper():
        print('up')
        func(*args)
        print('down')
    return wrapper

@decorator
def func(n):
    print(n)

func('middle')

Output:

File "<ipython-input-21-c2d727543f8e>", line 1
    def decorator(func(*args)):
                      ^
SyntaxError: invalid syntax

你的語法不正確。 要定義正確的裝飾器和包裝器 function,請參見以下內容:

def decorator(func):       # assign the function you want to pass
    def wrapper(*args):    # assign the parameters you want to use for the function
        print('up')
        func(*args)
        print('down')
    return wrapper

@decorator
def func(n):               # The function you want to decorate
    print(n)

func('middle')

Output:

up
middle
down

只需進行一些更改: arguments 對於 function 您需要在包裝器內提供為 *args。 還有一件事 - 從裝飾器中刪除 *args(func(*args))。

def decorator(func):
    def wrapper(*args):
        print('up')
        func(*args)
        print('down')
    return wrapper

@decorator
def func(n):
    print(n)

func('middle')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM