Trong Python, sự khác biệt giữa __Vpr__ và __str__ là gì?


Câu trả lời 1:

Theo cách cô đọng, tôi sẽ cố gắng giải thích. _str_ và _inter_ đều cho biểu diễn chuỗi với sự khác biệt nhỏ. Với repr (chi tiết kỹ thuật đối tượng), bạn có thể gọi hàm python eval () để đánh giá biểu thức python nhưng bạn không thể.

>>> repr (4) == str (4)
Thật
>>> repr ('hain đơn giản ...') == str ('hain đơn giản ...')
Sai

Bây giờ làm cá nhân để xem đầu ra để hiểu hành vi này

>>> s = 'đơn giản ...'
>>> repr (s)
"'hain đơn giản ...'"
>>>
'đơn giản ...'
>>> str (4)
'4'
>>> repr (4)
'4'

Sử dụng hàm eval python để hiểu _inter_ và _str_

>>> eval (repr ('đơn giản ...'))
'đơn giản ...'
>>> eval (str ('hain đơn giản ...'))
TracBack (cuộc gọi gần đây nhất vừa qua):
  Tệp "", dòng 1, trong 
  Tệp "", dòng 1, trong 
NameError: tên 'đơn giản hain ...' không được xác định

Bây giờ nơi để sử dụng tính năng này. Trong Python _inter_ được sử dụng để cung cấp thông tin Object và _str_ được sử dụng để in hoặc hiển thị mục đích.

  • Cố gắng triển khai __Vpr__ cho mỗi lớp bạn triển khai để cung cấp thêm chi tiết kỹ thuật về đối tượng. Hãy thử triển khai __str__ cho các lớp mà bạn nghĩ khả năng đọc là quan trọng hơn

Tôi tìm thấy ví dụ này trên mạng

>>> từ datetime nhập datetime
>>> ngay bây giờ = datetime.now ()
>>> repr (ngay bây giờ)
'datetime.datetime (2013, 2, 5, 4, 43, 11, 673075)'
>>> str (bây giờ)
'2013 / 02-05 04: 43: 11.673075'

Hy vọng bạn hiểu điều này.


Câu trả lời 2:

Đối với __Vpr__, "Nếu có thể, nó sẽ trông giống như một biểu thức Python hợp lệ có thể được sử dụng để tạo lại một đối tượng có cùng giá trị (được cung cấp một môi trường phù hợp). Nếu điều này là không thể, một chuỗi có dạng <.. .một số mô tả hữu ích ...> nên được trả lại. "

Vì vậy, cụ thể, __str__ cho một chuỗi "xyzzy" sẽ là chuỗi: xyzzy

trong khi đó __Vpr__ cho một chuỗi sẽ là chuỗi: 'xyzzy'


Câu trả lời 3:

Đối với __Vpr__, "Nếu có thể, nó sẽ trông giống như một biểu thức Python hợp lệ có thể được sử dụng để tạo lại một đối tượng có cùng giá trị (được cung cấp một môi trường phù hợp). Nếu điều này là không thể, một chuỗi có dạng <.. .một số mô tả hữu ích ...> nên được trả lại. "

Vì vậy, cụ thể, __str__ cho một chuỗi "xyzzy" sẽ là chuỗi: xyzzy

trong khi đó __Vpr__ cho một chuỗi sẽ là chuỗi: 'xyzzy'