Python'da yeniyim, bu muhtemelen basit bir kapsam sorusu. Bir Python dosyasındaki (modül) aşağıdaki kod beni biraz karıştırıyor:
if __name__ == '__main__':
x = 1
print x
Çalıştığım diğer dillerde, x
değişken ifade için yerel olduğundan if
ve bunun dışında olmamalıdır , bu kod bir istisna atar . Ancak bu kod yürütülür ve 1 yazdırılır. Herkes bu davranışı açıklayabilir mi? Bir modülde oluşturulan tüm değişkenler tüm modül için global / kullanılabilir mi?
if
deyimi yukarıda tutmaz (yani gerçek__name__
olduğunu değil'__main__'
bunu üst düzey yürütme yerine modülü aldığınızda, örneğin), sonrax
bağlanmış ve daha sonraki edilmiş aslaprint x
beyanı atarNameError: name 'x' is not defined
.