Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Berjaya Mendapatkan Nilai Pulangan daripada Fungsi Python yang Dipanggil oleh Program Go?

Bagaimanakah Saya Boleh Berjaya Mendapatkan Nilai Pulangan daripada Fungsi Python yang Dipanggil oleh Program Go?

Linda Hamilton
Lepaskan: 2024-11-28 15:31:11
asal
1052 orang telah melayarinya

How Can I Successfully Retrieve Return Values from a Python Function Called by a Go Program?

Memanggil Fungsi Python daripada Go dan Mendapatkan Kembali Nilai

Satu tugas biasa apabila bekerja dengan berbilang bahasa dalam projek ialah keupayaan untuk menggunakan fungsi daripada satu bahasa dalam bahasa lain. Dalam kes ini, kami sedang meneroka cara memanggil fungsi Python daripada program Go dan mendapatkan semula nilai pulangannya.

Percubaan dan Isu Asal

Dalam percubaan awal, kod Go berikut ialah used:

package main

import (
    "fmt"
    "os/exec"
)

func main() {
    cmd := exec.Command("python", "-c", fmt.Sprintf("'import pythonfile; print pythonfile.cat_strings(\"%s\", \"%s\")'", "foo", "bar"))
    out, err := cmd.CombinedOutput()
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println(string(out))
}
Salin selepas log masuk

Walau bagaimanapun, pendekatan ini menghadapi isu di mana nilai pulangan daripada fungsi Python tidak ditangkap dalam program Go. Output menunjukkan rentetan kosong, " ".

Analisis Masalah

Masalah timbul kerana cara arahan Python diformatkan. Petikan yang mengelilingi perintah itu sendiri membawa kepada penterjemah Python yang menganggap perintah itu sebagai rentetan tunggal dan bukannya senarai argumen.

Penyelesaian

Untuk menyelesaikan isu itu, petikan yang mengelilingi arahan itu ialah dikeluarkan. Kod Go berikut menunjukkan penyelesaiannya:

package main

import (
    "fmt"
    "os/exec"
)

func main() {
    cmd := exec.Command("python", "-c", "import pythonfile; print pythonfile.cat_strings('foo', 'bar')")
    out, err := cmd.CombinedOutput()
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println(string(out))
}
Salin selepas log masuk

Dengan mengalih keluar petikan, arahan kini dilaksanakan seperti yang dimaksudkan dan nilai pulangan daripada fungsi Python boleh ditangkap dengan betul dalam program Go.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Berjaya Mendapatkan Nilai Pulangan daripada Fungsi Python yang Dipanggil oleh Program Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan