Python, tüm global değişkenlerin sözlüğüne erişmek için globals()
işlevini sunar. Neden bu bir işlev ve değişken değil? Aşağıdaki işler:Neden globals() Python'da bir işlevdir?
g = globals()
g["foo"] = "bar"
print foo # Works and outputs "bar"
Bir işlevde gizlenen globals ardındaki mantık nedir? Ve sadece bir kez çağırmak ve bir yerde bir referansı saklamak daha mı yoksa ihtiyacım olan her seferinde mi çağırmalıyım? globals()
mevcut neden sormuyorum çünkü
IMHO, bu, Reason for globals() in Python? kopyası olmaktan ziyade neden (yerine değişken __globals__
ait) bir fonksiyon olmalıdır.
Hata ayıklama dışında her zaman globals'a erişmeniz gerekir; bu, ilgili http://stackoverflow.com/questions/12693606/reason-for-globals-in-python –
daha sonra, kullanışlı alanı kullanarak sanal bellekte saklanırdı. Bir işlev olarak, gerçekten ihtiyacınız olduğunda (ve her zaman değil) bu bilgileri saklamanızı sağlar. Fonksiyonun global değişkenleri araştırdığını ve aradığını tahmin ediyorum. Yani eğer onu çağırmazsan, fazladan hafıza kullanılmaz ... Bütün bunlardan emin değilim, sadece benim varsayım. – tomasyany
Bence bu soruyu cevaplamak belirli bir tarihsel bilgi gerektirecektir, ancak 'yerlilerin' bir işlev olması gerektiğinden (çağrıldığında dict'i güncellemesi gerekir), 'globals'ın' yerlilerle simetri için bir işlev yapıldığından şüpheleniyorum. – user2357112