เอกสาร Python อย่างเป็นทางการระบุว่า __repr__() ใช้เพื่อคำนวณการแสดงสตริง "อย่างเป็นทางการ" ของอ็อบเจ็กต์ ฟังก์ชันในตัว repr() ใช้ __repr__() เพื่อแสดงวัตถุ __repr__() ส่งคืนการแสดงแทนวัตถุที่พิมพ์ได้ หนึ่งในวิธีที่เป็นไปได้ในการสร้างวัตถุนี้ __repr__() มีประโยชน์มากกว่าสำหรับนักพัฒนา ในขณะที่ __str__() มีไว้สำหรับผู้ใช้ปลายทาง
ตัวอย่าง
โค้ดต่อไปนี้แสดงวิธีการใช้ __repr__()
class Point: def __init__(self, x, y): self.x, self.y = x, y def __repr__(self): return 'Point(x=%s, y=%s)' % (self.x, self.y) p = Point(3, 4) print p
ผลลัพธ์
ให้ผลลัพธ์
Point(x=3, y=4)
มาลองพิจารณาอีกตัวอย่างหนึ่งของการใช้ฟังก์ชัน repr() และสร้างวัตถุ datetime -
>>> import datetime >>> today = datetime.datetime.now()
เมื่อฉันใช้ฟังก์ชัน repr() ในตัวเพื่อแสดงวันนี้ −
>>> repr(today) 'datetime.datetime(2012, 3, 14, 9, 21, 58, 130922)'
เราจะเห็นได้ว่าสิ่งนี้ส่งคืนสตริง แต่สตริงนี้เป็นการแสดง "เป็นทางการ" ของอ็อบเจกต์ datetime ซึ่งหมายความว่าการใช้การแสดงสตริง "เป็นทางการ" นี้ เราสามารถสร้างวัตถุขึ้นใหม่ได้ -
>>> eval('datetime.datetime(2012, 3, 14, 9, 21, 58, 130922)') datetime.datetime(2012, 3, 14, 9, 21, 58, 130922)
ฟังก์ชันในตัว eval() ยอมรับสตริงและแปลงเป็นออบเจกต์วันที่และเวลา