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)) }
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!