Heim > Backend-Entwicklung > Golang > Wie übergebe ich die Rückgabewerte einer Python-Funktion ordnungsgemäß an Go?

Wie übergebe ich die Rückgabewerte einer Python-Funktion ordnungsgemäß an Go?

Barbara Streisand
Freigeben: 2024-12-01 02:40:10
Original
985 Leute haben es durchsucht

How to Properly Pass Python Function Return Values to Go?

Übergabe von Python-Funktionsrückgabewerten an Go

Dieser Artikel befasst sich mit dem Problem des Aufrufs einer Python-Funktion aus einem Go-Programm und des Zugriffs auf deren Rückgabe Wert. Das angetroffene Szenario beinhaltet den Aufruf einer in einer externen Datei definierten Python-Funktion und das Abrufen ihrer Rückgabedaten zur weiteren Verarbeitung in Go.

Im bereitgestellten Beispiel versucht ein Go-Programm, einen Python-Befehl mit exec.Command auszuführen, aber Es werden keine Rückgabedaten empfangen. Eine erste Theorie besagt, dass der Rückgabewert gedruckt wird, anstatt von der Python-Funktion zurückgegeben zu werden. Dies wird jedoch verworfen, da es gegen die Annahme verstoßen würde, dass die Funktion Teil eines größeren Python-Dienstprogrammmoduls ist.

Bei weiteren Untersuchungen wurde festgestellt, dass das Problem in der Konstruktion des Python-Befehls liegt. Durch Entfernen des umschließenden Anführungszeichens um den Befehl selbst wird der folgende Arbeitscode erhalten:

Go-Code:

package main

import (
    "fmt"
    "os/exec"
)

func main() {
    cmd := exec.Command("python", "-c", "import pythonfile; print pythonfile.cat_strings('foo', 'bar')")
    fmt.Println(cmd.Args)
    out, err := cmd.CombinedOutput()
    if err != nil { fmt.Println(err); }
    fmt.Println(string(out))
}
Nach dem Login kopieren

Die wichtigste Änderung ist das Entfernen des Anführungszeichens um den Python-Befehl. Dadurch kann der richtige Befehl ausgeführt und der Rückgabewert erfasst werden.

Das obige ist der detaillierte Inhalt vonWie übergebe ich die Rückgabewerte einer Python-Funktion ordnungsgemäß an Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage