Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich effektiv mehrere Werte von einer Python-Funktion zurückgeben?
Einführung
Die Aufgabe, mehrere Werte aus einer Funktion zurückzugeben, ist Wird häufig in verschiedenen Programmierszenarien angetroffen. In Python stehen hierfür mehrere Möglichkeiten zur Verfügung. In dieser Diskussion werden verschiedene Ansätze und ihre relativen Vor- und Nachteile untersucht.
Verwendung eines Tupels
Eine gängige Methode ist die Verwendung eines Tupels. Betrachten Sie dieses Beispiel:
def f(x): y0 = x + 1 y1 = x * 3 y2 = y0 ** y3 return (y0, y1, y2)
Obwohl dieser Ansatz unkompliziert ist, kann er mit zunehmender Anzahl der zurückgegebenen Werte umständlich werden, sodass es schwierig wird, den Überblick über die Reihenfolge und Bedeutung jedes Elements zu behalten.
Verwenden eines Wörterbuchs
Eine andere Möglichkeit besteht darin, ein Wörterbuch zur Darstellung der zurückgegebenen Werte zu verwenden. Zum Beispiel:
def g(x): y0 = x + 1 y1 = x * 3 y2 = y0 ** y3 return {'y0': y0, 'y1': y1, 'y2': y2}
Dieser Ansatz ermöglicht benannte Schlüssel und sorgt so für Klarheit und einfachen Zugriff auf bestimmte Werte.
Verwenden einer Klasse
Mit dem Attribut __slots__ können Klassen die Speichernutzung weiter optimieren, indem sie Speicherplatz für bestimmte Attribute vorab zuweisen. Zum Beispiel:
class ReturnValue(object): __slots__ = ["y0", "y1", "y2"] def __init__(self, y0, y1, y2): self.y0 = y0 self.y1 = y1 self.y2 = y2
Verwenden einer Datenklasse (Python 3.7)
Datenklassen sind eine praktische Möglichkeit, Klassen zum Speichern von Daten zu definieren, ohne dass explizite Konstruktoren oder Attribute erforderlich sind Erklärungen. Sie bieten automatisierte Methoden, Typprüfung und andere Vorteile.
@dataclass class Returnvalue: y0: int y1: float y3: int
Verwenden einer Liste
Obwohl weniger verbreitet, ist die Rückgabe einer Liste eine weitere Alternative. Aufgrund der Möglichkeit für Elemente gemischten Typs ist es jedoch möglicherweise nicht ideal.
Benannte Tupel (Python 2.6)
Benannte Tupel kombinieren die Funktionen von Tupeln und Wörterbüchern , Bereitstellung benannter Elemente, auf die über Attribut oder Index zugegriffen werden kann. Sie sind besonders nützlich, um mehrere Werte zurückzugeben, ohne dass eine spezielle Klasse erstellt werden muss.
import collections Point = collections.namedtuple('Point', ['x', 'y']) p = Point(1, 2) print(p.x, p.y) # Output: 1 2
Beste Methode
Die Wahl der besten Methode hängt von der jeweiligen Situation ab Anforderungen und Vorlieben der Situation. Im Allgemeinen gelten benannte Tupel jedoch als vielseitige und effiziente Option, um mehrere Werte sauber und präzise zurückzugeben. Sie bieten ein starkes Gleichgewicht zwischen Flexibilität und Typsicherheit.
Das obige ist der detaillierte Inhalt vonWie kann ich effektiv mehrere Werte von einer Python-Funktion zurückgeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!