Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Meluluskan Nilai Pulangan Fungsi Python kepada Pergi dengan betul?

Bagaimana untuk Meluluskan Nilai Pulangan Fungsi Python kepada Pergi dengan betul?

Barbara Streisand
Lepaskan: 2024-12-01 02:40:10
asal
988 orang telah melayarinya

How to Properly Pass Python Function Return Values to Go?

Meluluskan Nilai Pulangan Fungsi Python untuk Pergi

Artikel ini menangani isu menggunakan fungsi Python dari dalam program Go dan mengakses pemulangannya nilai. Senario yang dihadapi melibatkan memanggil fungsi Python yang ditakrifkan dalam fail luaran dan mendapatkan semula data pemulangannya untuk pemprosesan selanjutnya dalam Go.

Dalam contoh yang diberikan, program Go cuba melaksanakan perintah Python menggunakan exec.Command, tetapi gagal menerima sebarang data pemulangan. Teori awal ialah nilai pulangan dicetak dan bukannya dikembalikan oleh fungsi Python. Walau bagaimanapun, ini ditolak kerana ia akan melanggar andaian bahawa fungsi itu adalah sebahagian daripada modul utiliti Python yang lebih besar.

Setelah penyiasatan lanjut, didapati bahawa isu itu terletak pada pembinaan arahan Python. Dengan mengalih keluar petikan yang dilampirkan di sekeliling arahan itu sendiri, kod kerja berikut diperoleh:

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))
}
Salin selepas log masuk

Pengubahsuaian utama ialah mengalih keluar petikan di sekeliling arahan Python. Ini membolehkan perintah yang betul dilaksanakan dan nilai pulangan ditangkap.

Atas ialah kandungan terperinci Bagaimana untuk Meluluskan Nilai Pulangan Fungsi Python kepada Pergi dengan betul?. 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