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