Global News One で記事全文を読む
functools.partial は、既存の関数に引数を部分的に適用して新しい関数を作成します。これは、特定の引数が繰り返しまたは固定されているシナリオでの関数呼び出しを簡素化するのに役立ちます。
Python の functools.partial 関数を使用すると、関数の引数またはキーワードの一部を「フリーズ」し、より少ないパラメータで新しい関数を作成できます。これは、関数の特定のパラメーターを固定しながら、他のパラメーターを柔軟に保ちたい場合に特に便利です。
from functools import partial
partial(func, *args, **kwargs)
返されるオブジェクトは、固定引数が「固定」された新しい関数であり、新しい関数を呼び出すときに残りの引数を指定するだけで済みます。
def power(base, exponent): return base ** exponent # Create a square function by fixing exponent = 2 square = partial(power, exponent=2) # Now, square() only needs the base print(square(5)) # Output: 25 print(square(10)) # Output: 100
ここで、partial は常に exponent=2 を使用する新しい関数 square を作成します。
複数の引数を持つ関数があり、それをいくつかの固定値で呼び出すことが多いとします。
def greet(greeting, name): return f"{greeting}, {name}!" # Fix the greeting say_hello = partial(greet, greeting="Hello") say_goodbye = partial(greet, greeting="Goodbye") print(say_hello("Alice")) # Output: Hello, Alice! print(say_goodbye("Alice")) # Output: Goodbye, Alice!
partial を使用して、関数をマップなどの操作に適応させることができます。
def multiply(x, y): return x * y # Fix y = 10 multiply_by_10 = partial(multiply, y=10) # Use in a map numbers = [1, 2, 3, 4] result = map(multiply_by_10, numbers) print(list(result)) # Output: [10, 20, 30, 40]
Partial は、デフォルト引数がすでにある関数とシームレスに連携します。
def add(a, b=10): return a + b # Fix b to 20 add_with_20 = partial(add, b=20) print(add_with_20(5)) # Output: 25
Pandas などのライブラリで Partial を使用すると、繰り返しの操作を簡素化できます。
from functools import partial
partial(func, *args, **kwargs)
def power(base, exponent): return base ** exponent # Create a square function by fixing exponent = 2 square = partial(power, exponent=2) # Now, square() only needs the base print(square(5)) # Output: 25 print(square(10)) # Output: 100
def greet(greeting, name): return f"{greeting}, {name}!" # Fix the greeting say_hello = partial(greet, greeting="Hello") say_goodbye = partial(greet, greeting="Goodbye") print(say_hello("Alice")) # Output: Hello, Alice! print(say_goodbye("Alice")) # Output: Goodbye, Alice!
functools.partial を使用すると、特に繰り返しの関数呼び出しや高階関数を扱う場合に、コードを簡素化してクリーンアップできます。さらに多くの例や高度な使用例が必要な場合はお知らせください!
以上がPython の「functools.partial」とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。