Python getattr()

在我們之前的教程中,我們學習了有關python 系統命令的內容。在這個教程中,我們將討論 Python getattr() 函數。

Python getattr() 函數

Python getattr() 函數用於獲取對象的屬性值,如果沒有找到該對象的屬性,則返回默認值。基本上,返回默認值是您可能需要使用 Python getattr() 函數的主要原因。因此,在開始教程之前,讓我們看一下 Python getattr() 函數的基本語法。

getattr(object_name, attribute_name[, default_value])

Python getattr() 示例

在這一節中,我們將學習如何使用getattr() 函數訪問對象的屬性值。假設,我們正在編寫一個名為Student的類。Student 類的基本屬性是student_idstudent_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 :(

請注意,在調用 getattr() 函數時未提供默認值時,將引發 AttributeError

使用 Python getattr() 函數的原因

使用Python的主要原因是使用`getattr()`函数,我们可以通过属性名称作为字符串来获取该属性的值。因此,您可以从控制台手动输入程序中的属性名称。同样,如果找不到属性,您可以设置一些默认值,这使我们能够完成一些不完整的数据。此外,如果您的`Student`类正在开发中,我们可以使用`getattr()`函数来完成其他代码。一旦`Student`类具有此属性,它将自动获取它而不使用默认值。所以,这就是关于Python的`getattr()`函数的全部内容。如果对此有任何疑问,请在下面的评论框中提问。参考:官方文档

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