it-swarm-id.com

Kesalahan pernyataan kembali Python "'mengembalikan' fungsi luar"

Saat menjalankan kode berikut (dalam Python 2.7.1 pada mac dengan Mac OS X 10.7)

while True:
    return False

Saya mendapatkan kesalahan berikut

SyntaxError: 'return' outside function

Saya telah dengan cermat memeriksa tab dan/atau spasi yang salah. Saya dapat mengonfirmasi bahwa kode gagal dengan kesalahan di atas ketika saya menggunakan 4 ruang indentasi yang disarankan. Perilaku ini juga terjadi ketika pengembalian ditempatkan di dalam pernyataan kontrol lainnya (mis. Jika, untuk, dll.).

Bantuan apa pun akan dihargai. Terima kasih!

31
Jeff

Pernyataan return hanya masuk akal di dalam fungsi:

def foo():
    while True:
        return False
47

Gunakan quit() dalam konteks ini. break berharap berada di dalam loop, dan return mengharapkan berada di dalam suatu fungsi.

15
user3235770

Untuk memutus perulangan, gunakan break alih-alih return

Atau letakkan loop atau kontrol konstruksi ke dalam suatu fungsi, hanya fungsi yang dapat mengembalikan nilai.

11
Jürgen Strobel

Sesuai dokumentasi pada pernyataan return , return hanya dapat muncul secara sintaksis yang tersarang dalam definisi fungsi. Hal yang sama berlaku untuk yield .

1
Eugene Yarmash