相关阅读

Pythonhttps://blog.csdn.net/weixin_45791458/category_12403403.html

        getattr()是一个python内置的函数,用于获得一个对象的某个属性,一般情况下,可以通过点运算符(.)完成相同的功能,但是getattr()拥有一个点运算符无法实现的功能,就是允许你使用变量来表示属性名,从而可以在运行时动态地选择要获取的属性。这对于编写通用的代码或者处理动态数据结构很有用。

        下面是getattr()函数的函数头。

getattr(object, name[, default])

         其中参数object是要获取属性的对象;参数name是一个字符串,表示要获取属性的名称,它可以接受一个变量作为实参;default是一个可选项,表示如果指定的属性不存在,返回的默认值。

        下面是一个简单的例子,展示了getattr()函数的便捷之处。

# 定义了一个Person类,包含name、age、gender三个属性

class Person:

def __init__(self, name, age, gender):

self.name = name

self.age = age

self.gender = gender

# 定义了一个函数,它获取对象的一个属性

def print_person_property(person, property_name):

try:

value = getattr(person, property_name)

print(f"{property_name}: {value}")

except AttributeError:

print(f"Error: {property_name} is not a valid property.")

# 创建一个 Person 对象

person = Person("Alice", 30, "Female")

# 用户输入要打印的属性名

input_property = input("Enter property name (name, age, gender): ")

# 打印属性值或错误信息

print_person_property(person, input_property)

示例

Enter property name (name, age, gender): name

name: Alice

        如果直接使用点运算符,则会报错,如下所示。

# 定义了一个Person类,包含name、age、gender三个属性

class Person:

def __init__(self, name, age, gender):

self.name = name

self.age = age

self.gender = gender

# 创建一个 Person 对象

person = Person("Alice", 30, "Female")

# 用户输入要打印的属性名

input_property = input("Enter property name (name, age, gender): ")

# 打印属性值或错误信息

print_person_property(person.input_property)

示例

Enter property name (name, age, gender): name

Traceback (most recent call last):

File "c:\Users\12078\Desktop\python\test.py", line 22, in

print_person_property(person.input_property)

AttributeError: 'Person' object has no attribute 'input_property'

精彩链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: