相关阅读
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'
精彩链接
发表评论