Computer >> Máy Tính >  >> Lập trình >> Python

Hàm repr () làm gì trong Lập trình hướng đối tượng Python?


Tài liệu Python chính thức cho biết __repr __ () được sử dụng để tính toán biểu diễn chuỗi "chính thức" của một đối tượng. Hàm dựng sẵn repr () sử dụng __repr __ () để hiển thị đối tượng. __repr __ () trả về một biểu diễn có thể in được của đối tượng, một trong những cách có thể để tạo đối tượng này. __repr __ () hữu ích hơn cho các nhà phát triển trong khi __str __ () dành cho người dùng cuối.

Ví dụ

Đoạn mã sau cho biết cách __repr __ () được sử dụng.

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

Đầu ra

Điều này cho kết quả

Point(x=3, y=4)

Chúng ta hãy xem xét một ví dụ khác về việc sử dụng hàm repr () và tạo một đối tượng datetime -

>>> import datetime
>>> today = datetime.datetime.now()

Khi tôi sử dụng hàm tích hợp sẵn repr () để hiển thị hôm nay -

>>> repr(today)
'datetime.datetime(2012, 3, 14, 9, 21, 58, 130922)'

Chúng ta có thể thấy rằng chuỗi này trả về một chuỗi nhưng chuỗi này là biểu diễn "chính thức" của một đối tượng datetime, có nghĩa là sử dụng biểu diễn chuỗi "chính thức" này, chúng ta có thể tạo lại đối tượng -

>>> eval('datetime.datetime(2012, 3, 14, 9, 21, 58, 130922)')
datetime.datetime(2012, 3, 14, 9, 21, 58, 130922)

Hàm tích hợp eval () chấp nhận một chuỗi và chuyển đổi nó thành một đối tượng datetime.