Tôi có một người trang trí như dưới đây.
def myDecorator(test_func):
return callSomeWrapper(test_func)
def callSomeWrapper(test_func):
return test_func
@myDecorator
def someFunc():
print 'hello'
Tôi muốn nâng cao trình trang trí này để chấp nhận một lập luận khác như bên dưới
def myDecorator(test_func,logIt):
if logIt:
print "Calling Function: " + test_func.__name__
return callSomeWrapper(test_func)
@myDecorator(False)
def someFunc():
print 'Hello'
Nhưng mã này gây ra lỗi,
TypeError: myDecorator () nhận đúng 2 đối số (1 đối số đã cho)
Tại sao hàm không được tự động chuyển qua? Làm cách nào để chuyển một cách rõ ràng hàm cho hàm decorator?