Bir değişken var olup olmadığını kontrol etmek istiyoruz. İlk akla gelen yol aşağıdaki gibi kod yazmak:
try:
myVar
except NameError:
# Do something.
Peki try/catch kullanmayan başka yollar var da mı?
Bununla birlikte aklımızda tutmamız gereken birkaç noktadan da bahsedelim. Henüz tanımlanmamış veya değer atanmamış değişkenlerin kullanımı (örtük veya açıkça) genellikle herhangi bir dilde kötü bir şeydir. Çünkü program mantığının düzgün bir şekilde düşünülmediğini ve öngörülemeyen davranışlarla sonuçlandığını gösterme eğilimindedir.
Python’da yapmanız gerekiyorsa, ilk örneğe benzer şekilde try/catch bloğu kullanabiliriz.
Ancak, bunun iyi bir fikir olduğuna hala ikna olmadım – bence, bu durumun oluşmaması için kodumuzu yeniden düzenlemeyi denemeliyiz.
Yerel bir değişkenin varlığını denetlemek için:
if 'myVar' in locals():
# myVar var.
Genel bir değişkenin varlığını denetlemek için:
if 'myVar' in globals():
# myVar var.
Nesnenin özniteliği olup olmadığını denetlemek için:
if hasattr(obj, 'attr_name'):
# obj.attr_name var.
Yollarını kullanabiliriz.