הדפסה של מופעים שונים (צב שלוח 2)

לפי כל התיקונים עד היום במחברות, הבנתי שלא מומלץ להדפיס בפונקציה, אלא בתוכנית הראשית- לכן במחלקה יש לנו פונקצית קסם של str שממנה נדפיס מופע, עי שימוש ב print בתוכנית הראשית.

השאלה מה קורה אם יש לי רשימה של מופעים ואני רוצה להדפיס את כולם כחלק מהתוכנית (למשל להדפיס את כל ההודעות של משתמש בתרגיל צב שלוח 2).
זה מאלץ אותי להשתמש בפונקציה print במקום yield שהייתה ממומשת, אבל האם זה תקין?

האופציה של להדפיס התוכנית הראשית נראית לי מסורבלת, כי זה אומר שכל פקודה של קריאה אני חייב להצמיד אליה הדפסה מיד אחריה, וזה סרבול בקוד.

אין בעיה להדפיס בפונקציה אם זה הדבר היחיד שהיא מבצעת :slight_smile:

אז כנראה לא הבנתי משהו.
פונקציית הקסם str עובדת כאשר אני אשלח אליה אובייקט מסוג מסוים.
אבל אם יש לי רשימה של אובייקטים, איך אפשר להדפיס אותם בפקודה אחת, מבלי לעשות לולאה שתעבור אחד אחד ותדפיס?
כי אני מקבל כזה דבר:

a= po_box.search_inbox(‘b’,‘nice’)
print(list(a))

[<main.Message object at 0x000001FC8E936348>]

ההמלצה היא לולאת for על כל האובייקטים שאתה רוצה להדפיס. אם אתה צריך את זה בשביל עצמך כמתכנת אתה יכול לממש __repr__

לייק 1