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

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

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-10 22:21:13313ブラウズ

How Can I Preset Arguments for a Python Function Using `functools.partial`?

引数を Python 関数にバインドする方法

Python では、後の実行のために引数を関数にバインドする必要がある状況に遭遇することがあります。追加の引数は必要ありません。次の例を考えてみましょう。

def add(x, y):
    return x + y

add_5 = magic_function(add, 5)
assert add_5(3) == 8

このシナリオでは、引数 5 を add 関数にバインドできる magic_function を決定する必要があります。

解決策は、functools.partial モジュールを使用することにあります。 :

import functools

add_5 = functools.partial(add, 5)  # Bind '5' as the first argument to 'add'
assert add_5(3) == 8  # Call 'add_5' with '3' as the second argument

functools.partial は、元の関数を事前設定された引数でラップする呼び出し可能オブジェクトを効果的に作成します。これにより、固定引数を明示的に指定しなくても、後で関数を実行できます。

次のコードは、ラムダ式を使用した同等のアプローチを示しています。

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

ここで、print_hello の引数は次のとおりです。 sys.stdout.write に与えられたものとして扱われるため、実行中に柔軟な引数を渡すことができます。

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

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