Ո՞րն է տարբերությունը __repr__- ի և __str__- ի միջև Python- ում:


պատասխանել 1:

Կփորձեմ համառոտ ձևով բացատրել: _str_ և _repr_ երկուսն էլ լարային ներկայացման համար փոքր տարբերություն ունեն: Rep (օբյեկտի տեխնիկական մանրամասներով) կարող եք զանգահարել Python- ի eval () գործառույթը ՝ Python- ի արտահայտությունը գնահատելու համար: Այնուամենայնիվ, դա հնարավոր չէ:

>>> rep (4) == str (4) >>շմարիտ >>> ռեպ ('պարզ ակնթարթ ...') == փող ('' պարզ նապաստակ '') կեղծ

Այժմ այդ պահվածքը հասկանալու համար մարդը պետք է տեսնի արդյունքը

>>> s = 'պարզ պուրակը ...' >> >>> ներկայացուցիչ (ներ) '' 'պարզ պուրակը ...' '>> >>> փող (ներ) «հասարակ պուրակը ...» »>>> փող (4)» 4 '>>> Repr (4)' 4 '

Օգտագործելով Python- ի գնահատման գործառույթը `հասկանալու _repr_ և _str_

>>> eval (rep ('Simple hain ...')) "Simple grove ..." >>> eval (str ('պարզ hain ...')) հետագծում (վերջին զանգ վերջին). ֆայլ " », Տող 1, in Ֆայլ » », Տող 1, in NameError. «Simple hain ...» անվանումը չի սահմանվում

Որտեղ պետք է օգտագործվի այս գործառույթը: Python- ում _repr_- ն օգտագործվում է օբյեկտի տեղեկատվությունը նշելու համար, իսկ _str_- ն օգտագործվում է տպագրման կամ դիտման համար:

  • Յուրաքանչյուր իրականացված դասի համար փորձեք իրականացնել __repr__ ՝ ավելի շատ տեխնիկական մանրամասներ տրամադրելու օբյեկտի վերաբերյալ: Փորձեք իրականացնել __str__ դասեր, որոնք, ձեր կարծիքով, ավելի ընթերցելի են

Այս օրինակը գտա առցանց

>>> ներմուծում datetime datetime- ից >>> այժմ = datetime.now () >>> rep (այժմ) "datetime.datetime (2013, 2, 5, 4, 43, 11, 673075)" >>> փող (այժմ ) '2013-02-05 04: 43: 11.673075'

Հուսով եմ `դա հասկանում եք:


պատասխանել 2:

Հնարավորության դեպքում, __repr__- ի համար սա պետք է նմանի Python- ի վավեր արտահայտությանը, որը կարող է օգտագործվել նույն արժեք ունեցող օբյեկտը (հարմար միջավայրում) վերստեղծելու համար: Եթե ​​դա հնարավոր չէ, ապա ձևի տողը <.. Օգտակար նկարագրություն…> պետք է վերադարձվի: »

Մասնավորապես, «xyzzy» տողի համար __str__- ն կլինի տողը `xyzzy

իսկ տողի համար __repr__- ը տողը կլինի ՝ «xyzzy»


պատասխանել 3:

Հնարավորության դեպքում, __repr__- ի համար սա պետք է նմանի Python- ի վավեր արտահայտությանը, որը կարող է օգտագործվել նույն արժեք ունեցող օբյեկտը (հարմար միջավայրում) վերստեղծելու համար: Եթե ​​դա հնարավոր չէ, ապա ձևի տողը <.. Օգտակար նկարագրություն…> պետք է վերադարձվի: »

Մասնավորապես, «xyzzy» տողի համար __str__- ն կլինի տողը `xyzzy

իսկ տողի համար __repr__- ը տողը կլինի ՝ «xyzzy»