📜  python使用字符串获取对象属性 - Python(1)

📅  最后修改于: 2023-12-03 15:04:37.743000             🧑  作者: Mango

Python使用字符串获取对象属性

在Python中,我们可以使用字符串来获取对象的属性,这对于编程中的许多情况非常有用。本文将介绍如何使用Python字符串来获取对象属性。

获取对象属性的常见方法

在Python中,我们可以使用点(.)操作符来获取对象属性,例如:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

p = Person("Tom", 18)
print(p.name) # 输出Tom

但是当我们无法提前知道要获取的属性时,就需要使用字符串来获取属性。

使用getattr函数获取属性

使用Python内置函数 getattr 可以根据字符串获取对象属性。该函数接受两个参数:

  • 对象:表示要获取属性的对象。
  • 属性名:一个字符串,表示要获取的属性名。

例如:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

p = Person("Tom", 18)
attr_name = "name"
print(getattr(p, attr_name)) # 输出Tom
使用hasattr函数判断属性是否存在

使用Python内置函数 hasattr 可以判断一个对象是否拥有指定的属性。该函数接受两个参数:

  • 对象:要判断的对象。
  • 属性名:一个字符串,表示要判断的属性名。

例如:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

p = Person("Tom", 18)
attr_name = "name"
print(hasattr(p, attr_name)) # 输出True
使用setattr函数设置属性

使用Python内置函数 setattr 可以设置对象的属性值。该函数接受三个参数:

  • 对象:要设置属性值的对象。
  • 属性名:一个字符串,表示要设置的属性名。
  • 属性值:要设置的属性值。

例如:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

p = Person("Tom", 18)
attr_name = "name"
setattr(p, attr_name, "Jerry")
print(p.name) # 输出Jerry
总结

本文介绍了如何使用Python字符串来获取对象属性,包括使用内置函数 getattr 获取属性,使用内置函数 hasattr 判断属性是否存在,以及使用内置函数 setattr 设置属性值。这些功能可以帮助我们更方便地访问和修改对象属性,提高编程效率。