Câu hỏi được gắn thẻ «python-decorators»

Trong Python, decorator là các hàm có thể thay đổi các hàm, phương thức hoặc lớp một cách thuận tiện bằng cách sử dụng một cú pháp đặc biệt. Trình trang trí tự động thay đổi chức năng mà không thay đổi mã nguồn được trang trí.






5
Lớp trang trí phương pháp với tự tranh luận?
Làm cách nào để tôi chuyển một trường lớp cho một trình trang trí trên một phương thức lớp làm đối số? Những gì tôi muốn làm là một cái gì đó như: class Client(object): def __init__(self, url): self.url = url @check_authorization("some_attr", self.url) def get(self): do_work() Nó phàn nàn rằng …


5
Làm cách nào để chuyển các đối số bổ sung cho trình trang trí Python?
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__ …

1
Trình tự thực hiện trang trí
def make_bold(fn): return lambda : "<b>" + fn() + "</b>" def make_italic(fn): return lambda : "<i>" + fn() + "</i>" @make_bold @make_italic def hello(): return "hello world" helloHTML = hello() Đầu ra: "<b><i>hello world</i></b>" Tôi hiểu đại khái về decorator và cách nó hoạt động với một trong số nó …

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.