Penghias Python: Kod Permudah
Penghias dalam Python ialah alat berkuasa yang membolehkan anda mengubah suai gelagat fungsi atau kaedah tanpa menukar kod sumbernya. Ia menyediakan cara yang bersih untuk menambah kefungsian dan digunakan secara meluas untuk pengelogan, menguatkuasakan peraturan dan mengoptimumkan prestasi.
Dalam siaran ini, kita akan melihat enam penghias Python biasa dengan contoh mudah.
1 - @staticmethod: Tentukan Kaedah Statik
Penghias @staticmethod mencipta kaedah yang tidak mengakses data contoh (diri) atau kelas (cls). Ia berkelakuan seperti fungsi biasa tetapi boleh dipanggil dari kelas atau contoh.
Contoh:
class MyClass: @staticmethod def greet(): return "Hello from static method!"
2 - @classmethod: Tentukan Kaedah Kelas
Penghias @classmethod membolehkan anda menentukan kaedah yang mengambil kelas (cls) sebagai hujah pertama. Ini berguna untuk kaedah kilang atau mengubah keadaan kelas.
Contoh:
class MyClass: count = 0 @classmethod def increment_count(cls): cls.count += 1
3 - @property: Tentukan Atribut Baca Sahaja
Penghias @property membenarkan kaedah untuk diakses seperti atribut. Ia berguna apabila anda ingin mengawal akses kepada harta benda tanpa mendedahkan pelaksanaan dalaman.
Contoh:
class Circle: def __init__(self, radius): self._radius = radius @property def area(self): return 3.14 * self._radius ** 2
4 - @functools.lru_cache: Cache Hasil Fungsi Mahal
Penghias @lru_cache (dari functools) menyimpan cache hasil panggilan fungsi untuk mengelakkan pengiraan semula. Ini boleh meningkatkan prestasi dengan ketara untuk fungsi yang mahal atau yang sering dipanggil.
Contoh:
from functools import lru_cache @lru_cache(maxsize=32) def expensive_computation(x): return x ** 2
5 - @functools.wraps: Kekalkan Metadata dalam Penghias Tersuai
Apabila menulis penghias tersuai, penghias @wraps mengekalkan metadata (nama, docstring) fungsi asal, memastikan alat introspeksi masih berfungsi.
Contoh:
from functools import wraps def my_decorator(func): @wraps(func) def wrapper(*args, **kwargs): return func(*args, **kwargs) return wrapper
6 - @dataclass: Ringkaskan Takrif Kelas
Penghias @dataclass (daripada modul dataclasses) secara automatik menjana kaedah seperti init() dan repr() untuk kelas. Ia sesuai untuk kelas memegang data.
Contoh:
from dataclasses import dataclass @dataclass class Point: x: int y: int
Kesimpulan
Penghias Python seperti @staticmethod, @classmethod, @property, @lru_cache, @wraps dan @dataclass membantu menulis kod yang lebih bersih dan cekap dengan membungkus kefungsian pada kaedah dan fungsi. Ia adalah alat serba boleh yang boleh memudahkan banyak tugas pengaturcaraan.
Sumber
Definisi Penghias Python
@kaedah statik
@kaedah kelas
@harta benda
@functools.lru_cache
@functools.wraps
@dataclass
Atas ialah kandungan terperinci Penghias Python: Kod Permudah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Cara mengelakkan dikesan semasa menggunakan fiddlerevery di mana untuk bacaan lelaki-dalam-pertengahan apabila anda menggunakan fiddlerevery di mana ...

Fastapi ...

Menggunakan Python di Terminal Linux ...

Bagaimana Mengajar Asas Pengaturcaraan Pemula Komputer Dalam masa 10 jam? Sekiranya anda hanya mempunyai 10 jam untuk mengajar pemula komputer beberapa pengetahuan pengaturcaraan, apa yang akan anda pilih untuk mengajar ...

Memahami Strategi Anti-Crawling of Investing.com Ramai orang sering cuba merangkak data berita dari Investing.com (https://cn.investing.com/news/latest-news) ...

Mengenai Pythonasyncio ...

Memuatkan Fail Pickle di Python 3.6 Kesalahan Alam Sekitar: ModulenotFoundError: Nomodulenamed ...

Perbincangan mengenai sebab -sebab mengapa fail saluran paip tidak dapat ditulis apabila menggunakan crawler scapy apabila belajar dan menggunakan crawler scapy untuk penyimpanan data yang berterusan, anda mungkin menghadapi fail saluran paip ...
