我有這樣的代碼:哪裏蟒蛇裝飾從裝飾的功能獲得的參數
def foo(bar):
def test(some_string):
return 'Decorator test: '+bar(some_string)
return test
def main():
print(bar('test1'))
@foo
def bar(some_string):
return some_string[:3]
據我所知,調用bar('test1)
基本上是呼喚foo(bar('test1'))
,但是當我嘗試在foo
其它功能之前打印some_string
,我得到some_string is not defined
:
def foo(bar):
print(some_string)
def test(some_string):
return 'Decorator test: '+bar(some_string)
return test
- 如何
test
知道some_string
而foo
不? - 爲什麼我必須返回
test
讓裝飾工作?直接返回Decorator test: '+bar(some_string)
不起作用,因爲some_string
未定義。
都能跟得上。它是'foo(bar)('test1')'。 –