Python “” derslerinde değişkenleri?özel olan var mı
Java dünyadan gelen ve Bruce Eckels okuyorum'Python 3 Modelleri, Yemek Tarifleri ve Cümleler.
Sınıflar hakkında okurken, üzerinde Python örnek değişkenleri bildirmek gerek yok söylemek gider. Sadece yapıcı olarak kullanır, ve işte oradalar.
Örneğin:
class Simple:
def __init__(self1, str):
print("inside the simple constructor")
self1.s = str
def show(self1):
print(self1.s)
def showMsg (self, msg):
print (msg ':', self.show())
Eğer bu doğruysa, o zaman Sınıf Simple
herhangi bir nesne sadece değişkenin değerini s
sınıfının dışında değiştirebilir.
Örneğin:
if __name__ == "__main__":
x = Simple("constructor argument")
x.s = "test15" # this changes the value
x.show()
x.showMsg("A message")
Java, kamu/özel/korumalı değişkenleri hakkında öğretildi. Bu anahtar kelimeler zamanlarda bir sınıf, sınıf dışında kimse erişim değişkenleri istiyorum çünkü mantıklı.
Bu yüzden Python gerekli değildir?
CEVAP
Kültürel bir şey. Python, diğer dersleri' örneği ya da sınıf değişkenleri. yazmak istemiyorum Java, sana bir şey olursa aynı şeyi engellergerçekten- sonuçta, her zaman sınıfın kaynağı kendisi aynı etkiyi elde etmek için düzenleyebilirsiniz. Python güvenlik bu bahane, damla ve programcılar sorumlu olmaya teşvik ediyor. Uygulamada, bu çok güzel çalışıyor.
Eğer bazı nedenlerden dolayı özel değişkenleri taklit etmek isterseniz, her zaman PEP 8 __
öneki kullanabilirsiniz. Python kolayca onları içeren sınıf (sana rağmen . kod dışında görünür değiller ki __foo
gibi değişkenlerin adlarını parçalar ^em>olabilireğer yeterli, senin gibi kararlı iseniz etrafından dolaşolabilireğer çalışıyorsanız Java korumaları kurtulmak).
Aynı kural gereği, _
önek anlamına gelireğer teknik olarak bunu yaparken engel varsa bile uzak durun. __foo
_bar
benzeyen başka bir sınıfın değişkenleri ile oynamak yok.
Python statik sınıf değişkenleri...
Modern Python özel istisnalar bildirme...
Nasıl Python ortam değişkenleri erişme...
Neden Python'In 'gizli'...
Ne özel kabuk değişkenleri dolar işare...