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
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.
Nasıl Python betiği çıkış penceresi aç...
Nasıl JSP dosyaları Java kod önlemek i...
Nasıl Python ile şimdiki zaman almak i...
Nasıl klon ya da Python içinde bir lis...
Nasıl dize Python küçük harfe dönüştür...