SORU
29 EKİM 2009, PERŞEMBE


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
29 EKİM 2009, PERŞEMBE


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DrePwn

    DrePwn

    22 Temmuz 2011
  • guillaume2111's channel

    guillaume211

    19 Kasım 2006
  • Maya Learning Channel

    Maya Learnin

    23 HAZİRAN 2010