Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Menggunakan Penghias Python untuk Menjadikan Fungsi Tebal dan Miring, Menambah Cap Masa dan Memodalkan Keputusan Kaedah?

Bagaimanakah Saya Boleh Menggunakan Penghias Python untuk Menjadikan Fungsi Tebal dan Miring, Menambah Cap Masa dan Memodalkan Keputusan Kaedah?

DDD
Lepaskan: 2024-12-24 16:33:17
asal
484 orang telah melayarinya

How Can I Use Python Decorators to Make Functions Bold and Italic, Add Timestamps, and Capitalize Method Results?

Jadikan Fungsi Tebal dan Miring Menggunakan Penghias

Penghias ialah fungsi Pythonic yang meningkatkan fungsi lain. Kami akan mencipta dua penghias, @make_bold dan @make_italic, untuk memformat teks dalam huruf tebal dan condong. Begini caranya:

Penghias untuk menjadikan teks tebal

def make_bold(func):

def wrapper():
    return "<b>" + func() + "</b>"  # Surround the result with bold tags
return wrapper
Salin selepas log masuk

Penghias untuk membuat teks condong

def make_italic(func):

def wrapper():
    return "<i>" + func() + "</i>"  # Surround the result with italic tags
return wrapper
Salin selepas log masuk

@make_bold
@make_italic
def say():

return "Hello"
Salin selepas log masuk

print(say()) # Output: "Helo"

Menghiasi Fungsi dengan Argumen

Anda juga boleh mencipta penghias yang menerima hujah. Sebagai contoh, mari buat penghias yang menambah cap masa pada hasil:


masa import

Penghias untuk menambah cap masa pada fungsi

def add_timestamp(func):

def wrapper(*args, **kwargs):
    timestamp = time.ctime()  # Get the current time
    return f"{timestamp}: {func(*args, **kwargs)}"  # Prepend the timestamp to the call
return wrapper
Salin selepas log masuk

@add_timestamp
def greet(name):

return f"Hello, {name}!"
Salin selepas log masuk

print(greet("John")) # Output: "2023-01 -01 12:00:00: Hello, John!"

Penghias Kaedah

Penghias berfungsi bukan sahaja untuk fungsi tetapi juga untuk kaedah. Begini cara menghias kaedah:


Pengguna kelas:

def __init__(self, name):
    self.name = name
Salin selepas log masuk

Penghias untuk menggunakan huruf besar nama pengguna

def capitalize_name(kaedah):

def wrapper(self):
    return method(self).capitalize()  # Capitalize the result
return wrapper
Salin selepas log masuk

@capitalize_name
def get_name(self):

return self.name
Salin selepas log masuk

user = User("john")
print(user.get_name()) # Output: "John"

Amalan Terbaik

  • Gunakan @sintaks untuk menghiasi fungsi, kerana ia lebih boleh dibaca.
  • Pastikan penghias ringan untuk mengelakkan prestasi overhed.
  • Gunakan functools.wraps() untuk mengekalkan metadata fungsi asal (nama, docstring).
  • Pertimbangkan untuk menggunakan penghias untuk kebimbangan silang seperti pengelogan, caching atau pengendalian ralat.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Penghias Python untuk Menjadikan Fungsi Tebal dan Miring, Menambah Cap Masa dan Memodalkan Keputusan Kaedah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan