Tôi có một trang trí như dưới đâyLàm thế nào để vượt qua các đối số thêm vào trang trí python?
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 trang trí này để chấp nhận một lập luận như dưới đây
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 cung cấp cho các lỗi,
TypeError: myDecorator() takes exactly 2 arguments (1 given)
Tại sao chức năng không tự động được chuyển? Làm cách nào để chuyển một cách rõ ràng chức năng đến chức năng trang trí?
Balki: hãy tránh sử dụng boolean như là đối số của bạn, nó không phải là một cách tiếp cận gd và giảm mã của readliability –
@KitHo - đó là một lá cờ boolean, vì vậy sử dụng một giá trị boolean là cách tiếp cận đúng. – AKX
@KitHo - "gd" là gì? Liệu nó có tốt không"? –