SORU
8 EKİM 2009, PERŞEMBE


Python: sınıf baskı kullanarak bir sınıf veya nesneleri yazdırmak için (Nasıl)?

Python ile ipleri öğreniyorum. Açmaya çalıştığımda sınıfın bir nesnesi yazdırmaFoobarkullanarakprint()fonksiyon, bu gibi bir çıktı alıyorum:

<__main__.Foobar instance at 0x7ff2a18c>

Set bir yolu vardavranış baskı(veyadize gösterimi)sınıfve onunnesneler? print() aradığımda bir sınıf nesnesi örneğin, belirli bir formatta veri üyeleri yazdırmak istiyorum. Nasıl Python ile bunu başarmak için?

Eğer C sınıfı biliyorsanız, yukarıdaki standart elde edilebilirostreambir ekleme ilefriend ostream& operator << (ostream&, const Foobar&)sınıf için bir yöntem.

CEVAP
8 EKİM 2009, PERŞEMBE


>>> class Test:
...     def __repr__(self):
...         return "Test()"
...     def __str__(self):
...         return "member of Test"
... 
>>> t = Test()
>>> t
Test()
>>> print t
member of Test

__str__ yöntem ne olursa yazdırmak ve __repr__ yöntem ne olur kullandığınızda repr() fonksiyon (ya bak böyle ile etkileşimli istemi). Bu en değilsePythonicben de halen öğrenme aşamasındayım ama çalıştığı için, özür dilerim, yöntemi.

Eğer __str__ hiçbir yöntem verilirse, Python yerine __repr__ sonucu yazdırın. __str__ ama yukarıda gördüğünüz __repr__ olarak kullanır Python __repr__, define ama hala baskı __str__ kullanın.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • El SalvaLobo

    El SalvaLobo

    10 Temmuz 2006
  • joshsnice

    joshsnice

    28 Kasım 2006
  • MarinaHD2001

    MarinaHD2001

    7 ŞUBAT 2009