SORU
31 Aralık 2009, PERŞEMBE


Python: açık 'kendini önlemek için Nasıl'?

pygame tutorials bazı izleyerek Python öğrenme edilmiştir.

Burada anahtar kelime geniş bir kullanım buldumözve öncelikle bir Java arka plan geliyor, yazın hep unutuyorumöz. Örneğin, self.rect.centerx yerine yazın ederim, benim için rect.centerx,,rectzaten sınıfının bir üye değişkeni.

Aklıma Java paralel bu durum için üye değişkenleri tüm başvuruları önek zorundabu.

Am ile tüm üye değişkenleri önüne koydumözbeni bunu yapmak zorunda kalmamak için izin verecek onlara bildirmek için bir yolu var mı? ya da bir

Önerdiğim şey bile değilpythonicHala eğer mümkün olup olmadığını bilmek istiyorum.

Bu sorular ÇOK ilgili bir bakmam gerek, ama oldukça sonra ben ne cevap vermediler:

CEVAP
31 Aralık 2009, PERŞEMBE


Python belirten öz gerektirir.Sonuç olarak hiç bir üyenin ne üzerinde herhangi bir karışıklık var, hatta tam sınıf tanımı görünür olmadan değil. Yararlı özellikleri gibi bu ipucu: yanlışlıkla üye olmayan gölge ve böylece kod sonu olan üyeleri ekleyemezsiniz.

Bir uç örnek: olabilir sınıfları Bankası ve üye erişim olsun ya da olmasın her zaman bildiğiniz herhangi bir bilgisi olmadan bir sınıf yazabilirsiniz

class A(some_function()):
  def f(self):
    self.member = 42
    self.method()

Butamamlayınkod! (some_function türü bir üs olarak kullanılan döndürür.)

Bir sınıfın yöntemleri dinamik olarak oluşur nerede:

class B(object):
  pass

print B()
# <__main__.B object at 0xb7e4082c>

def B_init(self):
  self.answer = 42
def B_str(self):
  return "<The answer is %s.>" % self.answer
# notice these functions require no knowledge of the actual class
# how hard are they to read and realize that "members" are used?

B.__init__ = B_init
B.__str__ = B_str

print B()
# <The answer is 42.>

Unutmayın, hem bu örnekler aşırı ve görmeyeceksin onları her gün, ne ben düşündüren gerekir genellikle kod yazmak gibi, ama onlar açıkça göstermektedir yönlerini kendi olmak kesinlikle gerekli.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Apple

    Apple

    22 HAZİRAN 2005
  • DavidParody

    DavidParody

    17 EKİM 2009
  • SolidWorksTutoriels

    SolidWorksTu

    14 Kasım 2013