Saya baru mengenal Python, jadi ini mungkin pertanyaan pelingkupan sederhana. Kode berikut dalam file Python (modul) sedikit membingungkan saya:
if __name__ == '__main__':
x = 1
print x
Dalam bahasa lain yang pernah saya gunakan, kode ini akan memberikan pengecualian, karena x
variabelnya lokal untuk if
pernyataan dan tidak boleh ada di luarnya. Tetapi kode ini mengeksekusi, dan mencetak 1. Adakah yang bisa menjelaskan perilaku ini? Apakah semua variabel dibuat dalam modul global / tersedia untuk seluruh modul?
if
pernyataan di atas tidak berlaku (yaitu,__name__
adalah tidak'__main__'
, misalnya ketika Anda mengimpor modul bukannya dijalankan tingkat atas), makax
tidak akan pernah telah terikat, dan selanjutnyaprint x
pernyataan akan melemparNameError: name 'x' is not defined
.