Önceki cevapları oluşturmak ve daha fazla örnek göstermek. Doğru kullanıldığında, arasındaki fark strve reprnet. Kısacası repr, nesnenin tam durumunu yeniden oluşturmak için kopyalanarak yapıştırılabilen bir dize döndürmelidir, oysa sonuçlar striçin loggingve observinghata ayıklama için yararlıdır . Bilinen bazı kütüphaneler için farklı çıktıları görmek için bazı örnekler.
Tarih saat
print repr(datetime.now())
print str(datetime.now())
strGibi bir günlük dosyası içine yazdırmak için iyidir reprdoğrudan çalıştırmak veya bir dosyaya komutları olarak dökümü istiyorsanız yeniden amaçlı olabilir.
x = datetime.datetime(2017, 12, 12, 18, 49, 27, 134411)
Dizi
print repr(np.array([1,2,3,4,5]))
print str(np.array([1,2,3,4,5]))
Numpy'de repryine doğrudan tüketilebilir.
Özel Vector3 örneği
class Vector3(object):
def __init__(self, args):
self.x = args[0]
self.y = args[1]
self.z = args[2]
def __str__(self):
return "x: {0}, y: {1}, z: {2}".format(self.x, self.y, self.z)
def __repr__(self):
return "Vector3([{0},{1},{2}])".format(self.x, self.y, self.z)
Bu örnekte, reprdoğrudan tüketilebilen / çalıştırılabilen bir dize döndürür, oysa strbir hata ayıklama çıktısı olarak daha kullanışlıdır.
v = Vector3([1,2,3])
print str(v)
print repr(v)
Bir şey varsa, akılda tutulması gereken strtanımlı değil ama repr, strotomatik arayacak repr. Yani, en azından tanımlamak her zaman iyidirrepr