Shlomi Fish wrote:
>>>ככל הנראה "import cgi" לא מבצע פעילות כלשהי כשלעצמו שתגרום לו להתנהג מוזר
>>>כאשר הוא לא רץ כתסריט CGI. אבל אם פעולת ה-import הייתה עושה משהו כזה, אז
>>>לא ניתן היה להשתמש בטריק הזה.
>>
>>זה לא במקרה. מדובר במודול ספריה סטנדרטית, וככזה ניתן לצפות ממנו להתנהג
>>בצורה מקובלת (כלומר, כפי שאמרתי קודם: import לא אמור לעשות דברים משונים)
>>
>
>
> המממ... אם כך, מה הנוהג המקובל בפייתון למצב שהמודול מממש מנשק שדורש אתחול?
> האם
> הנחת העבודה היא שיש לבצע את האתחול בזמן היצירה של מופע של אובייקט, שהוא מכיל
> את כל הפונקציונליות של המנשק? כלומר כל מה שאני עושה הוא משהו כמו:
אם זו מחלקה אז כשנוצר אובייקט הוא מאותחל ביצירה שלו. אם זה מודול הוא
יכול לאתחל את עצמו בזמן הטעינה. במקרה של cgi אם תנסה ליצור את
FieldStorage הוא יאתחל הכל, אם תנסה לאתחל אובייקט נוסף שלו, תקבל זבל.
> או אוליי אני פשוט צריך לקרוא את הקוד.
זה תמיד עובד.
>
> אוקיי. בשל העובדה שפייתון היא שפה עם טיפוסיות דינמית (dynamical typing) וכן
> שפה סימבולית, ניתן להחליף כל אובייקט באובייקט אחר שאינו שייך לו כל עוד שמות
> שגרות המחלקה זהים. גם בפרל זה אותו הדבר. רק ששם אם הקוד מבצע שימוש ב-
> $obj->isa("MyClass")
> עלולה להיווצר בעייה (אבל בד"כ לא). גם בפייתון אמורה להיות פונקציה דומה המבררת
> אם אובייקט יורש ממחלקה מסוימת אבל זה לא עומד לי על קצה הלשון וידרוש ממני קצת
> חיפוש באינטרנט.
isinstance(obj, MyClass)
ברוך