צב שלוח 2 בעייה בהדפסה למרות שיש _str__

אהלן,
אני מצליחה להשתמש במחלקת Message מתוך PostOffice.
הבעיה היא שכשאני מנסה להדפיס תוצאה של פעולה של PostOffice (למשל של read_inbox), משום מה ההודעות מיוצגות כך:
This is Newman’s inbox [<main.Message object at 0x00000277F408C048>, <main.Message object at 0x00000277F4088E08>, <main.Message object at 0x00000277F4088D48>].
ולא בהתאם לאיך שהן אמורות להיות מוצגות כפי שהגדרתי להן תחת מחלקת Message באמצעות str.

מה פספסתי?
תודה!

הפעולה __. str __ (שניתן לקרוא לה גם ע"י ()print) מייצרת סטרינג מאובייקט (אם הוגדרה בהתאם), לא מרשימה שבעצמה אינה אובייקט (בהדפסה קיבלת את תוכן הרשימה). בידייך שתי אפשרויות להתמודד עם זה:
להדפיס אובייקטים (רמז: לולאת for יכולה לעזור במקרה זה)
ישנה גם פעולת הקסם __.repr __ (.. עריכה.. שלמיטב הבנתי לא מומלץ להשתמש בה להדפסות)

זה הצליח! חשבתי על repr אבל כשקראתי עליה משום מה קיבלתי את הרושם שאין הבדל מstr למעט האם הייצוג שנוצר הוא “פורמלי” או יותר מיועד להיות משהו “קריא” עבור משתמש. למדתי להמשך, תודה!

לייק 1

הבהרה קטנה בנוגע ל¯__repr__: הוא לא כ"כ נועד להדפסות. המטרה שלו הוא להיות כלי עזר למתכנת.
ההגדרה ה(כמעט) רשמית שלו היא “מחזיר מחרוזת, שכשמריצים אותה בג’ופיטר נוטבוק מתקבל האובייקט עצמו”.
עדיף לא לעשות לו Abuse, ואם יש צורך להשתמש בלולאה :upside_down_face:

3 לייקים

עכשיו הבנתי! תודה על ההבהרה.

2 לייקים