שיטת הקסם של פייתון obj.__set_name__(self, owner, name)
השיטה נוצרת על תכונה obj
כאשר הכיתה owner
מחזיק את תְכוּנָה נוצר.
אנחנו קוראים לזה א "שיטת דאנדר" ל "דאובל תַחַתשיטת ניקוד" (המכונה גם "שיטת קסם"). לקבל רשימה של כל שיטות הדנדר עם הסבר, בדוק את שלנו מאמר גיליון הונאה של dunder בבלוג הזה.
תחביר ודוגמה מינימלית
object.__set_name__(self, owner, name)
הנה דוגמה מינימלית:
class Attribute: pass class My_Class: x = Attribute() # Python calls: x.__set_name__(My_Class, 'x')
הביטוי x = Attribute()
באופן פנימי גורם לפייתון להתקשר x.__set_name__(My_Class, 'x')
.
עקיפת __set_name__() דוגמה
בואו נעקוף את __set_name__
שיטת קסם על Attribute
הכיתה של:
class Attribute: def __set_name__(self, owner, name): print('Python is great!') class My_Class: x = Attribute()
למעשה, שיטת הקסם נקראת שמביאה לפלט:
Python is great!
דוגמה מעשית יותר
מטרת שיטת הקסם __set_name__()
עם זאת, אין להדפיס מחרוזות דמה למעטפת Python – כפי שאולי כבר ניחשתם.
💡 הערה: ה __set_name__()
השיטה נקראת אוטומטית על ידי Python עבור כל תכונה בודדת המוחזק על ידי הבעלים כיתת אובייקט כאשר אתחול אובייקט – בדוגמה הקודמת שלנו אובייקט מסוג My_Class
. פרטים נוספים כאן.
אולם, ה __set_name__()
השיטה אינה נקראת בעת הקצאת תכונות לאובייקט באופן דינמי – מאוחר יותר בקוד.
כדי לראות למה אני מתכוון, עיין בקטע הקוד הזה:
class Attribute: def __set_name__(self, owner, name): print('Python is great!') class My_Class: pass My_Class.x = Attribute() # x.__set_name__() is NOT called!! # <No Output>
כעת, אתה יכול להתקשר ידנית ל- __set_name__()
שיטה להפעיל את אותה שגרה שהיית מפעיל אם היית מאתחל את התכונה בהגדרת המחלקה מיד:
class Attribute: def __set_name__(self, owner, name): print('Python is great!') class My_Class: pass My_Class.x = Attribute() # <No Output> My_Class.x.__set_name__(My_Class, 'x') # Python is great!
הפניות:
לאן ללכת מכאן?
די לתיאוריה. בואו נתאמן קצת!
קודנים מקבלים שכר שש ספרות ויותר מכיוון שהם יכולים לפתור בעיות בצורה יעילה יותר באמצעות אינטליגנציה מכונה ואוטומציה. כדי להצליח יותר בקידוד, פתור בעיות אמיתיות יותר עבור אנשים אמיתיים. כך אתה משפשף את הכישורים שאתה באמת צריך בפועל. אחרי הכל, מה התועלת בתורת הלמידה שאף אחד לא צריך?
אתה בונה מיומנויות קידוד בעלות ערך גבוה על ידי עבודה על פרויקטי קידוד מעשיים!
האם אתה רוצה להפסיק ללמוד עם פרויקטי צעצוע ולהתמקד בפרויקטי קוד מעשיים שמרוויחים כסף ופותרים בעיות אמיתיות לאנשים?
אם התשובה שלך היא כן!, שקול להיות א מפתח פרילנסר של Python! זו הדרך הטובה ביותר לגשת למשימה של שיפור כישורי הפייתון שלך – גם אם אתה מתחיל לגמרי.
הצטרף לסמינר המקוון החינמי שלי "כיצד לבנות את המיומנות שלך עם הכנסה גבוהה" וצפו כיצד הגדלתי את עסק הקידוד שלי באינטרנט ואיך גם אתם יכולים – מהנוחות של הבית שלכם.
הצטרפו עכשיו לסמינר המקוון בחינם!

תוך כדי עבודה כחוקר במערכות מבוזרות, ד"ר כריסטיאן מאייר מצא את אהבתו להוראת סטודנטים למדעי המחשב.
כדי לעזור לתלמידים להגיע לרמות גבוהות יותר של הצלחה ב-Python, הוא הקים את אתר החינוך לתכנות Finxter.com. הוא מחבר ספר התכנות הפופולרי Python One-Liner (NoStarch 2020), מחבר שותף של ה הפסקת קפה פייתון סדרת ספרים בהוצאה עצמית, חובבת מדעי המחשב, סוֹפֵר בִּלתִי תָלוּי, ובעלים של אחד מ-10 הגדולים ביותר בלוגים של פייתון עוֹלָמִי.
התשוקות שלו הן כתיבה, קריאה וקידוד. אבל התשוקה הגדולה ביותר שלו היא לשרת קודנים שואפים דרך Finxter ולעזור להם לשפר את כישוריהם. אתה יכול הצטרף לאקדמיית האימייל החינמית שלו כאן.
קישור לכתבת המקור – 2022-01-15 16:08:53