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 xvariabelnya lokal untuk ifpernyataan 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?
ifpernyataan di atas tidak berlaku (yaitu,__name__adalah tidak'__main__', misalnya ketika Anda mengimpor modul bukannya dijalankan tingkat atas), makaxtidak akan pernah telah terikat, dan selanjutnyaprint xpernyataan akan melemparNameError: name 'x' is not defined.