デコレータは、他の関数を拡張する Python 関数です。 @make_bold と @make_italic という 2 つのデコレーターを作成して、テキストを太字と斜体の書式設定します。方法は次のとおりです:
</p> <h1>テキストを太字にするデコレータ</h1> <p>def make_bold(func):</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">def wrapper(): return "<b>" + func() + "</b>" # Surround the result with bold tags return wrapper
定義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()) # 出力: "Hello"
引数を受け入れるデコレーターを作成することもできます。たとえば、結果にタイムスタンプを追加するデコレータを作成してみましょう。
<br>インポート時間</p> <h1>関数にタイムスタンプを追加するデコレータ</h1> <p>確かにadd_timestamp(func):</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><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
defgreet(name):
return f"Hello, {name}!"
print(greet("John")) # 出力: "2023-01 -01 12:00:00: こんにちは。 John!"
デコレータは関数だけでなくメソッドに対しても機能します。メソッドを修飾する方法は次のとおりです:
<br>class User:</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">def __init__(self, name): self.name = name
def Capitalize_name(メソッド):
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 ()) # 出力: "John"
以上がPython デコレータを使用して関数を太字や斜体にしたり、タイムスタンプを追加したり、メソッドの結果を大文字にしたりするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。