Anda mencoba menjalankan basis kode Python 2 dengan Python 3. xrange()
diubah namanya menjadi range()
Python 3.
Jalankan game dengan Python 2 sebagai gantinya. Jangan mencoba untuk port kecuali Anda tahu apa yang Anda lakukan, kemungkinan besar akan ada lebih banyak masalah di luar xrange()
vs range()
.
Sebagai catatan, apa yang Anda lihat bukan kesalahan sintaks tetapi pengecualian runtime.
Jika Anda tahu apa yang Anda lakukan dan secara aktif membuat basis kode Python 2 yang kompatibel dengan Python 3, Anda dapat menjembatani kode tersebut dengan menambahkan nama global ke modul Anda sebagai alias untuk range
. (Mempertimbangkan bahwa Anda mungkin harus memperbarui setiap range()
penggunaan yang ada dalam basis kode Python 2 dengan list(range(...))
untuk memastikan Anda masih mendapatkan objek daftar di Python 3):
try:
# Python 2
xrange
except NameError:
# Python 3, xrange is now named range
xrange = range
# Python 2 code that uses xrange(...) unchanged, and any
# range(...) replaced with list(range(...))
atau ganti semua penggunaan xrange(...)
dengan range(...)
dalam basis kode dan kemudian gunakan shim yang berbeda untuk membuat sintaks Python 3 kompatibel dengan Python 2:
try:
# Python 2 forward compatibility
range = xrange
except NameError:
pass
# Python 2 code transformed from range(...) -> list(range(...)) and
# xrange(...) -> range(...).
Yang terakhir lebih disukai untuk basis kode yang ingin bertujuan menjadi Python 3 yang kompatibel hanya dalam jangka panjang, lebih mudah untuk kemudian hanya menggunakan sintaks Python 3 bila memungkinkan.