Фарқи байни __repr__ ва __str__ дар Python чист?


ҷавоб диҳед 1:

Ман кӯшиш мекунам ба таври мухтасар шарҳ диҳам. _str_ ва _repr_ барои намояндагии сатрҳо ҳарду фарқияти ночиз доранд. Бо repr (тафсилоти техникии объект) шумо метавонед функсияи python үнэлгээ () -ро барои арзёбии ифодаи Python даъват кунед. Аммо, ин имконнопазир аст.

>>> repr (4) == str (4) Дуруст >>> repr ('hain оддӣ ...') == str ('hain оддӣ ...') Дурӯғ

Акнун шахс бояд барои фаҳмидани ин рафтор натиҷаро бинад

>>> s = 'чуқури оддӣ ...' >>> намоянда (ҳо) "'чуқури оддӣ ...'" >>> str (s) "грофи оддӣ ..." >>> str (4) ' 4 '>>> Такрорӣ (4)' 4 '

Бо истифода аз функсияи Баҳодиҳии Python барои фаҳмидани _repr_ ва _str_

>>> үнэлгээ (repr ('hain оддӣ ...')) "чуқури оддӣ ..." >>>> баал (str ('hain оддӣ ...')) пайгирӣ (занги охирин): файл " ", Сатри 1, дар Файл " ", Сатри 1, дар NameError: Номи 'хаини оддӣ ...' муайян карда нашудааст

Ин функсия бояд дар куҷо истифода шавад? Дар Python, _repr_ барои муайян кардани маълумоти объект ва _str_ барои чоп ё намоиш истифода мешавад.

  • Ба ҳар як синфи татбиқшуда __repr__-ро татбиқ кунед, то тафсилоти техникии объектро пешниҳод кунед. Кӯшиш кунед __str__ -ро барои дарсҳое, ки ба фикри шумо хондашавандаанд, иҷро кунед

Ман ин намунаро дар интернет ёфтам

>>> воридот аз датти додашуда >>> ҳоло = datetime.now () >>> repr (ҳозир) "datetime.datetime (2013, 2, 5, 4, 43, 11, 673075)" >>> str (ҳозир) ) '2013-02-05 04: 43: 11.673075'

Умедворам, ки шумо инро мефаҳмед.


ҷавоб диҳед 2:

Барои "__repr__" ин бояд ифодаи дурусти Python бошад, ки мумкин аст барои дубора сохтани объект бо арзиши якхела истифода шавад (дар муҳити мувофиқ). Агар ин имконнопазир бошад, сатри шакли <.. Тавсифи муфид ...> бояд баргардонида шавад. "

Махсусан, __str__ барои сатри "xyzzy" чунин хоҳад буд: xyzzy

Дар ҳоле ки __repr__ барои сатр чунин хоҳад буд: 'xyzzy'


ҷавоб диҳед 3:

Барои "__repr__" ин бояд ифодаи дурусти Python бошад, ки мумкин аст барои дубора сохтани объект бо арзиши якхела истифода шавад (дар муҳити мувофиқ). Агар ин имконнопазир бошад, сатри шакли <.. Тавсифи муфид ...> бояд баргардонида шавад. "

Махсусан, __str__ барои сатри "xyzzy" чунин хоҳад буд: xyzzy

Дар ҳоле ки __repr__ барои сатр чунин хоҳад буд: 'xyzzy'