ホームページ >バックエンド開発 >Python チュートリアル >functools.partial を使用して Python 関数の引数を事前定義するにはどうすればよいですか?

functools.partial を使用して Python 関数の引数を事前定義するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-15 09:42:12621ブラウズ

How Can I Predefine Arguments for Python Functions Using functools.partial?

Python 関数の引数バインドについて

事前に定義された特定の引数、または追加の引数を減らして後で呼び出すことができる関数を作成するとします。引数。これを Python でどのように実現できますか?

解決策: functools.partial

解決策は functools.partial 関数を使用することです。引数の一部またはすべてが凍結された状態で関数をラップする呼び出し可能オブジェクトを返します。これにより、すでに適用されている凍結された引数を使用してラップされた関数を後で呼び出すことができます。

使用例

を使用して引数をバインドする方法を示します。 functools.partial:

import functools
  
print_hello = functools.partial(sys.stdout.write, "Hello world\n")
  
print_hello()

Output:

Hello world

このコードは、呼び出されたときに常に「Hello world」を出力する関数 print_hello を作成します。 functools.partial 関数は、sys.stdout.write の最初の引数を文字列「Hello world」にバインドしました。

同等のラムダ式

上記のコードは同等です次のラムダ式に変換します:

print_hello = lambda *a, **kw: sys.stdout.write("Hello world\n", *a, **kw)

つまり、 functools.partial は、既存の関数に引数を部分的に適用することで新しい関数を作成する便利な方法を提供します。

以上がfunctools.partial を使用して Python 関数の引数を事前定義するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。