Python __set_name__() שיטת הקסם – Finxter

Share on facebook
Share on twitter
Share on linkedin
Share on telegram
Share on whatsapp
Share on email
פרסומת
MAGNEZIX מגנזיקס


שיטת הקסם של פייתון 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! זו הדרך הטובה ביותר לגשת למשימה של שיפור כישורי הפייתון שלך – גם אם אתה מתחיל לגמרי.

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

הצטרפו עכשיו לסמינר המקוון בחינם!



קישור לכתבת המקור – 2022-01-15 16:08:53

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn
Share on telegram
Telegram
Share on whatsapp
WhatsApp
Share on email
Email
פרסומת
MAGNEZIX מגנזיקס

עוד מתחומי האתר