תיעוד dunder methods

האם נהוג לכתוב תיעוד לdunder methods מלבד __init __? (למשל __str __)
וכיוצ"ב, האם יש צורך בכך בתרגילים של מחברת 2 אם השתמשנו בהן?

לדעתי זה תלוי מה הן עושות.
לצורך העניין, אם init שלך רק מגדירה atributes אז מן הסתם שאין צורך כי זה מתואר במחלקה עצמה
אולם אם היא עושה פעולות נוספות אולי כן כדאי.

כנל לגבי str , אם אתה משנה את ההדפסה שווה לרשום מה את בוחר להדפיס למשל.

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

אם init שלך רק מגדירה atributes אז מן הסתם שאין צורך כי זה מתואר במחלקה עצמה
אולם אם היא עושה פעולות נוספות אולי כן כדאי.

לפי המוסכמה זה לא נכון, יש להגדיר את הattributes של __ init__ אפילו אם הם ברורים מאליו. זה לפחות מה שאני מבין מהמחברת ומהמסמך של גוגל בנושא.
בכלליות אני לא מאמין שיש פה עניין של דעה, כמובן שיש גישות שונות אבל מוסכמה היא מוסכמה.

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

Returns:
    None

אני לא אמרתי שלא מגדירים את האטריביוט של init – אני אמרתי שמגדירים אותם פשוט בתיעוד של המחלקה ולא של הפונקציה עצמה. (בדיוק כמו במחברת)

בנוגע לשאלה השניה שלך אין לי מושג.

אז לא הבנתי אותך, שאלתי בכוונה על דברים שהם לא __ init__ כי היא ספציפית כבר מקבלת תיעוד ואין הגיון בלרשום תיעוד נוסף בתוכה. (לפחות לא כזה שאני יכול לחשוב עליו :upside_down_face: )

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

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

כנל בנוגע ל str.