Pertanyaan yang diberi tag «python-decorators»


17
Bagaimana cara membuat rantai dekorator fungsi?
Bagaimana saya bisa membuat dua dekorator dengan Python yang akan melakukan hal berikut? @makebold @makeitalic def say(): return "Hello" ... yang seharusnya kembali: "<b><i>Hello</i></b>" Saya tidak mencoba membuat HTMLcara ini dalam aplikasi nyata - hanya mencoba memahami cara kerja dekorator dan rantai dekorator.

14
Bagaimana cara kerja dekorator properti?
Saya ingin memahami cara propertykerja fungsi bawaan. Yang membingungkan saya adalah bahwa itu propertyjuga dapat digunakan sebagai dekorator, tetapi hanya membutuhkan argumen ketika digunakan sebagai fungsi bawaan dan bukan saat digunakan sebagai dekorator. Contoh ini dari dokumentasi : class C(object): def __init__(self): self._x = None def getx(self): return self._x def …



5
Dekorator metode kelas dengan argumen sendiri?
Bagaimana saya meneruskan bidang kelas ke dekorator pada metode kelas sebagai argumen? Yang ingin saya lakukan adalah sesuatu seperti: class Client(object): def __init__(self, url): self.url = url @check_authorization("some_attr", self.url) def get(self): do_work() Mengeluh bahwa diri tidak ada untuk lewat self.urlke dekorator. Apakah ada jalan keluarnya?


5
Bagaimana cara menyampaikan argumen tambahan ke dekorator Python?
Saya memiliki dekorator seperti di bawah ini. def myDecorator(test_func): return callSomeWrapper(test_func) def callSomeWrapper(test_func): return test_func @myDecorator def someFunc(): print 'hello' Saya ingin meningkatkan dekorator ini untuk menerima argumen lain seperti di bawah ini def myDecorator(test_func,logIt): if logIt: print "Calling Function: " + test_func.__name__ return callSomeWrapper(test_func) @myDecorator(False) def someFunc(): print 'Hello' …

1
Perintah eksekusi dekorator
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() Keluaran: "<b><i>hello world</i></b>" Saya kira-kira mengerti tentang dekorator dan cara kerjanya dengan salah satunya di sebagian besar contoh. Dalam contoh …

5
Bagaimana cara memotong definisi fungsi python dengan dekorator?
Saya ingin tahu apakah mungkin untuk mengontrol definisi fungsi Python berdasarkan pengaturan global (misalnya OS). Contoh: @linux def my_callback(*args, **kwargs): print("Doing something @ Linux") return @windows def my_callback(*args, **kwargs): print("Doing something @ Windows") return Kemudian, jika seseorang menggunakan Linux, definisi pertama my_callbackakan digunakan dan yang kedua akan diabaikan. Ini bukan …
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.