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?
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
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"
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 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
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"
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!