2016-10-30 91 views
1

爲什麼我從運行上面的異常運行在這裏調用。我覺得我失去了一些東西非常非常明顯..我得到「TypeError:decorator_factory()只需要2個參數(1給出)」

def decorator_factory(arg1, arg2): 
    def simple_decorator(f): 
     def wrapper(): 
       print arg1 
       f() 
       print arg2 
    return wrapper 
return decorator_factory 

@decorator_factory("what the heck", "what the heck2") 
def hello(): 
print "Hello World" 

hello() 
+0

請仔細檢查您的indendation。除此之外,你寫的東西沒有什麼明顯的錯誤;請給出一個[mcve]的完整回溯。 – jonrsharpe

+1

它必須是'return simple_decorator'而不是'return decorator_factory' – furas

+0

對不起,我們在這裏再次複製它。它看起來像在這裏粘貼代碼給了我你在這裏提到的問題。 – slopeofhope

回答

2

它必須是return simple_decorator而不是return decorator_factory

def decorator_factory(arg1, arg2): 
    def simple_decorator(f): 
     def wrapper(): 
       print arg1 
       f() 
       print arg2 
     return wrapper 
    return simple_decorator # <--- HERE 

@decorator_factory("what the heck", "what the heck2") 
def hello(): 
    print "Hello World" 

hello() 
相關問題