Pythonda __repr__ və __str__ arasındakı fərq nədir?


cavab 1:

Qısaca izah etməyə çalışacağam. _str_ və _repr_ hər ikisi sim təmsil üçün bir az fərqlidir. Rep (obyekt texniki məlumatları) ilə Python ifadəsini qiymətləndirmək üçün python qiymətləndirmə () funksiyasına zəng edə bilərsiniz. Ancaq bu mümkün deyil.

>>> repr (4) == str (4) Həqiqi >>> repr ('sadə hain ...') == str ('sadə hain ...') Yalan

İndi bu davranışı başa düşmək üçün insanın çıxışını görməlidir

>>> s = 'sadə bağ ...' >>> təmsilçi (lər) "'sadə bağ ..." ">>> str (s)" sadə bağ ... ">>> str (4)' 4 '>>> Təqdim (4)' 4 '

Python qiymətləndirmə funksiyasından istifadə edərək _repr_ və _str_ anlamaq üçün istifadə edin

>>> qiymətləndir (repr ('sadə hain ...')) "sadə bağ ..." >>> qiymətləndirmə (str ('sadə hain ...')) izləmə (son zəng son): fayl " ", 1-ci sətir, in Fayl " ", 1-ci sətir, in NameError: 'Sadə hain ...' adı təyin edilmir

Bu funksiya harada istifadə edilməlidir? Pythonda obyekt məlumatını təyin etmək üçün _repr_ istifadə olunur və _str_ çap və ya görüntüləmək üçün istifadə olunur.

  • Obyekt haqqında daha çox texniki məlumat vermək üçün hər tətbiq olunan sinif üçün __repr__ tətbiq etməyə çalışın. Daha oxunacağını düşündüyünüz dərslər üçün __str__ tətbiq etməyə çalışın

Bu nümunəni internetdə tapdım

>>> datetime datetime idxal >>> indi = datetime.now () >>> repr (indi) "datetime.datetime (2013, 2, 5, 4, 43, 11, 673075)" >>> str (indi ) '2013-02-05 04: 43: 11.673075'

Ümid edirəm ki, bunu başa düşürsən.


cavab 2:

"__Repr__" üçün bu, eyni dəyəri (uyğun bir mühitdə) yenidən yaratmaq üçün istifadə edilə bilən etibarlı Python ifadəsi kimi görünməlidir. Bu mümkün deyilsə, formanın bir sətri <.. Faydalı bir təsvir ... ... qaytarılmalıdır. "

Xüsusilə, "xyzzy" simli üçün __str__ simli olacaq: xyzzy

bir sətir üçün __repr__ isə sətir olacaq: 'xyzzy'


cavab 3:

"__Repr__" üçün bu, eyni dəyəri (uyğun bir mühitdə) yenidən yaratmaq üçün istifadə edilə bilən etibarlı Python ifadəsi kimi görünməlidir. Bu mümkün deyilsə, formanın bir sətri <.. Faydalı bir təsvir ... ... qaytarılmalıdır. "

Xüsusilə, "xyzzy" simli üçün __str__ simli olacaq: xyzzy

bir sətir üçün __repr__ isə sətir olacaq: 'xyzzy'