Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich effektiv mehrere Werte von einer Python-Funktion zurückgeben?

Wie kann ich effektiv mehrere Werte von einer Python-Funktion zurückgeben?

Susan Sarandon
Susan SarandonOriginal
2024-12-30 21:11:13143Durchsuche

How Can I Effectively Return Multiple Values from a Python Function?

Alternativen für die Rückgabe mehrerer Werte aus einer Python-Funktion

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn