跳到主要内容

Python setattr() 函数

setattr() 函数设置对象的属性值。

示例

class Student:
marks = 88
name = 'Sheeran'

person = Student()

# 将 name 的值设置为 Adam
setattr(person, 'name', 'Adam')
print(person.name)

# 将 marks 的值设置为 78
setattr(person, 'marks', 78)
print(person.marks)

# 输出: Adam
# 78

setattr() 语法

setattr() 函数的语法是:

setattr(object, name, value)

如果你想获取对象的属性,请使用 getattr()

setattr() 参数

setattr() 函数接受三个参数:

  • object - 需要设置属性的对象
  • name - 属性名称
  • value - 赋予属性的值

setattr() 返回值

setattr() 方法返回 None

示例 1:Python 中的 setattr() 如何工作?

class Person:
name = 'Adam'

p = Person()
print('修改前:', p.name)

# 将 name 设置为 'John'
setattr(p, 'name', 'John')

print('修改后:', p.name)

输出

修改前: Adam
修改后: John

示例 2:在 setattr() 中未找到属性时

如果未找到属性,setattr() 会创建一个新属性并赋予值。然而,这只有在对象实现了 __dict__() 方法时才可能。

你可以使用 dir() 函数检查对象的所有属性。

class Person:
name = 'Adam'

p = Person()

# 将属性 name 设置为 John
setattr(p, 'name', 'John')
print('Name is:', p.name)

# 设置 Person 中不存在的属性
setattr(p, 'age', 23)
print('Age is:', p.age)

输出

Name is: John
Age is: 23