Dua fitur idiomatik Python yang paling kuat dibahas di sini: decorator yang membungkus fungsi dengan perilaku tambahan, dan generator yang memproduksi nilai secara lazy. Keduanya muncul di hampir semua framework modern.
Bangun decorator secara manual tanpa sintaks @, lalu lihat bahwa @ hanyalah pintasan pembungkusan fungsi.
Buka → # Function DecoratorsTulis decorator praktis: pengukur waktu, penghitung pemanggilan, stacking order, dan bukti eksekusi saat def.
Buka → # Decorators dengan ArgumentsBuat decorator yang menerima pengaturan sendiri lewat tiga lapis closure: factory, decorator, lalu pembungkus.
Buka → # functools.wrapsPulihkan __name__, __doc__, dan tanda tangan fungsi yang tertimpa decorator dengan @functools.wraps.
Buka → # yield dan Generator FunctionsPelajari yield yang menjeda fungsi, generator object, next() sebagai penggerak, StopIteration, dan hemat memori.
Buka → # Generator LifecycleTelusuri siklus hidup generator: jeda di yield, kehabisan nilai, close() dengan GeneratorExit, dan send().
Buka → # yield fromDelegasikan aliran ke generator lain dengan yield from: gabungkan sub-generator, ratakan list bersarang, tangkap return.
Buka → # Lazy EvaluationRangkai generator menjadi pipeline yang menyaring dan mengubah data satu per satu tanpa memuat semuanya ke memori.
Buka →