Python getattr()

בתיעוד הקודם שלנו למדנו על פקודת מערכת בפייתון. במדריך זה נדבר על פונקציית Python getattr().

פונקציית Python getattr()

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

getattr(object_name, attribute_name[, default_value])

דוגמת Python getattr()

בסעיף זה, נלמד כיצד לגשת לערכי המאפיינים של אובייקט באמצעות פונקציית getattr(). נניח, אנו כותבים מחלקה בשם Student. המאפיינים הבסיסיים של מחלקת ה-Student הם student_id ו־student_name. עכשיו ניצור אובייקט של מחלקת ה-Student ונגש למאפיינים שלו.

class Student:
    student_id=""
    student_name=""

    # בנאי ראשוני כדי להגדיר את הערכים
    def __init__(self):
        self.student_id = "101"
        self.student_name = "Adam Lam"

student = Student()
# קבלת ערכי המאפיינים באמצעות פונקציית getattr()
print('\ngetattr : name of the student is =', getattr(student, "student_name"))

# אבל תוכל לגשת אליהם בצורה הבאה
print('traditional: name of the student is =', student.student_name)

ערך ברירת מחדל לפונקציית Python getattr()

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

class Student:
    student_id=""
    student_name=""

    # בנאי ראשי להגדרת הערכים
    def __init__(self):
        self.student_id = "101"
        self.student_name = "Adam Lam"

student = Student()
# שימוש באפשרות של ערך ברירת המחדל
print('Using default value : Cgpa of the student is =', getattr(student, "student_cgpa", 3.00))
# בלי להשתמש באפשרות של ערך ברירת המחדל
try:
    print('Without default value : Cgpa of the student is =', getattr(student, "student_cgpa"))
except AttributeError:
    print("Attribute is not found :(")

לכן, לאחר הרצת הקוד תקבל פלט כזה

Using default value : Cgpa of the student is = 3.0
Attribute is not found :(

שים לב ש-AttributeError מתווך כאשר ערך ברירת המחדל אינו מסופק בעת קריאה לפונקציית getattr().

סיבה לשימוש בפונקציית Python getattr()

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

Source:
https://www.digitalocean.com/community/tutorials/python-getattr