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ırmaFoobar
kullanarakprint()
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 edilebilirostream
bir ekleme ilefriend ostream& operator << (ostream&, const Foobar&)
sınıf için bir yöntem.
CEVAP
>>> 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.
Nasıl baskı yeni satır veya boşluk olm...
Nasıl sınıf alanları, Visual Studio ve...
Nasıl python sınıf bir dinamik olarak ...
Nasıl bir dizinden Python bir sınıf al...
Karınca dışında belirli bir hedef için...