Python Functools Teilfunktion

Migel Hewage Nimesha 15 Februar 2024
  1. Verwenden Sie die Funktion partial() von Functools in Python
  2. Abschluss
Python Functools Teilfunktion

Functools sind das Standard-Framework, das in Python verwendet wird, wenn mit höherwertigen Funktionen gearbeitet wird, die auf andere Funktionen einwirken oder diese zurückgeben, und es hilft, die Funktionen zu erweitern oder zu verwenden, ohne sie neu zu schreiben. Die Verwendung von Functools macht den Code lesbar und erleichtert die Wartung mit hoher Effizienz.

Diese Bibliothek enthält zwei Hauptfunktionen: partial und partialmethod. Die partialmethod ist ein nicht aufrufbarer Methodendeskriptor einer bereits definierten Funktion für bestimmte Argumente und gibt einen neuen partialmethod-Deskriptor zurück.

Schauen wir uns die Funktion partial() an.

Verwenden Sie die Funktion partial() von Functools in Python

Die Funktion partial() ist eine Funktion höherer Ordnung, die eine Funktion als Eingabe nimmt und eine Funktion zurückgibt, die in einem Programm wie andere Funktionen verwendet werden kann. Wenn es eine Funktion mit vielen Argumenten gibt, wir aber jedes Mal, wenn wir diese Funktion verwenden, nur ein oder zwei Argumente ändern müssen, hilft die Funktion partial(), die mit der Functools-Bibliothek geliefert wird, in solchen Situationen.

Mit Hilfe der Funktion partial() können wir eine bestimmte Anzahl von Argumenten einer Funktion einfrieren und eine neue vereinfachte erstellen, um ein neues partial()-Objekt mit Positionsargumenten und Schlüsselwörtern zurückzugeben. Daher hindert es uns daran, die ursprüngliche Funktion neu zu schreiben.

Insgesamt ist partial() ein praktisches Werkzeug, insbesondere um verschiedene Eingaben auf ein einzelnes Objekt anzuwenden oder eines der Argumente der Funktion so zu verpacken, dass es konstant ist. Das Endergebnis der Verwendung der Funktion partial() wird also einen eleganten, lesbaren und wiederverwendbaren Code ausgeben.

Bevor wir die Funktion partial() verwenden, müssen wir sie aus der Functools-Bibliothek importieren. Mal sehen, wie wir die Funktion implementieren.

from functools import partial

Da wir die Bibliothek partial mit dem obigen Code importiert haben, können wir den Befehl partial wie unten verwenden. Dann können wir die Funktion partial() nach Belieben aufrufen und sie gibt die Funktion ähnlich der definierten Funktion zusammen mit einem festen Wert aus.

Nachfolgend die standardisierte partial()-Funktion und ihre Attribute.

partial(func, /, *args, **keywords)

Die partielle Funktion besteht aus drei Hauptattributen: Funktion, Argumente und Schlüsselwörter.

  1. partial.func (Funktionsname) – Ein aufrufbares Objekt oder eine Funktion, die den Namen und die hexadezimale Adresse der übergeordneten Funktion zurückgibt.
  2. partial.args (Positionsargumente) – Dieses Attribut gibt die vorab zugewiesenen Argumente an die Funktion partial() zurück.
  3. partial.keyword (Schlüsselwortargumente) – Dieses Attribut gibt die vorab zugewiesenen Schlüsselwörter an die partial()-Funktion zurück.

Lassen Sie uns ein Beispiel mit der Funktion partial() und ihren Attributen definieren.

Vollständiger Code:

from functools import partial

# original function


def multiply(a, b):
    return a * b


# partial function to multiply a as 2
multiplication1 = partial(multiply, 2)
print(multiplication1(4))

# partial function to multiply b as 7
multiplication2 = partial(multiply, b=7)
print(multiplication2(3))

# simple multiply function with two variables
print(multiply(5, 2))

# partial function with two values and multiply function
multiplication3 = partial(multiply, 2, 5)
print(multiplication3())

# defining some attributes in multiplication1, multiplication2 multiplication3
print("Function used in multiplication1 :", multiplication1.func)
print("Keywords for multiplication2 :", multiplication2.keywords)
print("Arguments for multiplication3 :", multiplication3.args)

Ausgang:

Python Functools Teilweise - Ausgabe 1

Zuerst haben wir die Funktion partial() aus functools importiert und eine Funktion namens multiply() mit zwei Variablen als a und b definiert. Diese Multiplizieren-Funktion multipliziert zwei Zahlen (a,b) miteinander.

from functools import partial


def multiply(a, b):
    return a * b

Im folgenden Code-Chunk wird die Funktion partial() aufgerufen und gibt ein Funktionsobjekt multiply() zusammen mit einem festen Wert von 2 aus. Hier ruft die Funktion partial() die Funktion multiply() mit a als 2 auf.

Beim Drucken weist es 4 für b zu und druckt das Ergebnis als 8.

multiplication1 = partial(multiply, 2)
print(multiplication1(4))

Wenn hier die Funktion partial() aufgerufen wird, gibt sie die Funktion multiply() und den für b zugewiesenen Wert als 3. aus. Sie hat den Wert für die Variable b angegeben, indem sie den Parameter der ursprünglichen Funktion übersprungen hat.

Beim Drucken hat es einen Wert für a als 3 definiert und zeigt die Ausgabe als 21 an.

multiplication2 = partial(multiply, b=7)
print(multiplication2(3))

Die Funktion partial() ist nicht unbedingt erforderlich, wenn die Funktion mit Werten für zwei Variablen aufgerufen wird. Wie üblich nimmt es 5 für a, 2 für b und gibt das Ergebnis als 10 aus.

print(multiply(5, 2))

Da die ursprüngliche Funktion beim Aufruf der Funktion partial() zwei Parameter hat, ist dies kein Problem, und sie nimmt multiply() mit a als 2 und b als 5. Dann zeigt es das Ergebnis als 10 an.

multiplication3 = partial(multiply, 2, 5)
print(multiplication3())

Der folgende Codeabschnitt zeigt die in der Funktion multiplication1 verwendete Funktion, Schlüsselwörter in multiplication2 bzw. Argumente in multiplication3. Die in multiplication1 verwendete Funktion ist also multiply() und ihr hexadezimaler Wert ist 000001E523A6E4C0.

In multiplication2 haben wir {'b': 7} als Schlüsselwörter verwendet, während 2, 5 die Argumente sind, die in multiplication3 verwendet werden.

print("Function used in multiplication1 :", multiplication1.func)
print("Keywords for multiplication2 :", multiplication2.keywords)
print("Arguments for multiplication3 :", multiplication3.args)

Abschluss

In diesem Artikel wurde die Funktion partial() der Bibliothek functools besprochen. Wie Sie in den vorherigen Beispielen gesehen haben, macht die Verwendung der Funktion partial() unseren Code lesbarer, eleganter und schneller.

Wenn Sie eine Funktion finden, die ein oder mehrere Argumente einfriert, ist die Funktion partial() die beste für diese Situation.

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.

Verwandter Artikel - Python Function