ホームページ > バックエンド開発 > Python チュートリアル > Python デコレータを使用して関数を太字や斜体にしたり、タイムスタンプを追加したり、メソッドの結果を大文字にしたりするにはどうすればよいですか?

Python デコレータを使用して関数を太字や斜体にしたり、タイムスタンプを追加したり、メソッドの結果を大文字にしたりするにはどうすればよいですか?

DDD
リリース: 2024-12-24 16:33:17
オリジナル
559 人が閲覧しました

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

デコレータを使用して関数を太字および斜体にする

デコレータは、他の関数を拡張する 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 サイトの他の関連記事を参照してください。

前の記事:Python を使用してディレクトリ内のファイルのみを一覧表示する方法 次の記事:Pygame の「リソース ファイルを開けませんでした、FileNotFoundError」エラーを修正する方法は?
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
最新の問題
関連トピック
詳細>
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート