![](/img/trans.png)
[英]Syntax error when passing named arguments with ":" to function
[英]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.