Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ฟังก์ชั่น repr () ทำอะไรในการเขียนโปรแกรมเชิงวัตถุ Python


เอกสาร 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() ยอมรับสตริงและแปลงเป็นออบเจกต์วันที่และเวลา