Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich Python-Dekoratoren verwenden, um Funktionen fett und kursiv zu formatieren, Zeitstempel hinzuzufügen und Methodenergebnisse groß zu schreiben?

Wie kann ich Python-Dekoratoren verwenden, um Funktionen fett und kursiv zu formatieren, Zeitstempel hinzuzufügen und Methodenergebnisse groß zu schreiben?

DDD
DDDOriginal
2024-12-24 16:33:17489Durchsuche

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

Funktionen mithilfe von Dekoratoren fett und kursiv formatieren

Dekoratoren sind pythonische Funktionen, die andere Funktionen verbessern. Wir erstellen zwei Dekoratoren, @make_bold und @make_italic, um Text fett und kursiv zu formatieren. So geht's:

</p>
<h1>Decorator, um Text fett zu machen</h1>
<p>def make_bold(func):</p>
<pre class="brush:php;toolbar:false">def wrapper():
    return "<b>" + func() + "</b>"  # Surround the result with bold tags
return wrapper

Decorator, um Text kursiv zu machen

def make_italic(func):

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

@make_bold
@make_italic
def say():

return "Hello"

print(say()) # Ausgabe: "Hallo"

Funktionen mit Argumenten dekorieren

Sie können auch Dekoratoren erstellen, die Argumente akzeptieren. Erstellen wir zum Beispiel einen Dekorator, der dem Ergebnis einen Zeitstempel hinzufügt:

<br>Importzeit</p>
<h1>Dekorator zum Hinzufügen eines Zeitstempels zu einer Funktion</h1>
<p> def add_timestamp(func):</p>
<pre class="brush:php;toolbar:false">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

@add_timestamp
def meet(name):

return f"Hello, {name}!"

print(greet("John")) # Ausgabe: "2023-01 -01 12:00:00: Hallo, John!"

Dekoratoren für Methoden

Dekoratoren arbeiten nicht nur für Funktionen, sondern auch für Methoden. So dekorieren Sie eine Methode:

<br>class User:</p>
<pre class="brush:php;toolbar:false">def __init__(self, name):
    self.name = name

Decorator zur Großschreibung von Benutzernamen

def captialize_name(method):

def wrapper(self):
    return method(self).capitalize()  # Capitalize the result
return wrapper

@capitalize_name
def get_name(self):

return self.name

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

Best Practices

  • Verwenden Sie die @-Syntax, um Funktionen zu dekorieren, da sie mehr ist lesbar.
  • Halten Sie Dekoratoren leichtgewichtig, um Leistungsaufwand zu vermeiden.
  • Verwenden Sie functools.wraps(), um die Metadaten der ursprünglichen Funktion (Name, Dokumentzeichenfolge) beizubehalten.
  • Erwägen Sie die Verwendung von Dekoratoren für Querschnittsthemen wie Protokollierung, Caching oder Fehlerbehandlung.

Das obige ist der detaillierte Inhalt vonWie kann ich Python-Dekoratoren verwenden, um Funktionen fett und kursiv zu formatieren, Zeitstempel hinzuzufügen und Methodenergebnisse groß zu schreiben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn