2016-10-30 2 views
1

Warum bekomme ich die obige Ausnahme von der Ausführung des Anrufs hier. Ich fühle mich wie ich bin etwas fehlt sehr sehr offensichtlich ..Ich bekomme "TypeError: Decorator_Factory() nimmt genau 2 Argumente (1 gegeben)"

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

Prüfe deine indendation sein muss. Abgesehen davon ist offensichtlich nichts falsch mit dem, was Sie geschrieben haben; Bitte geben Sie eine [mcve] mit dem vollständigen Traceback. – jonrsharpe

+1

Es muss 'return simple_decorator' anstelle von' return decorator_factory' sein. – furas

+0

Sorry Leute, lass es mich nochmal hier kopieren .. es sieht so aus als ob du den Code hier einfügen würdest, gab mir die Probleme, die ihr hier erwähnt. – slopeofhope

Antwort

2

Es return simple_decorator statt 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() 
Verwandte Themen