Python setattr()

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

示例

class Student:
  marks = 88
  name = 'Sheeran'

person = Student()

# set value of name to Adam setattr(person, 'name', 'Adam')
print(person.name)
# set value of marks to 78 setattr(person, 'marks', 78)
print(person.marks) # Output: # 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('Before modification:', p.name)

# setting name to 'John' setattr(p, 'name', 'John')
print('After modification:', p.name)

输出

Before modification: Adam
After modification: John

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

如果找不到属性,setattr() 会创建一个新属性并为其赋值。但是,这只有在对象实现了 __dict__() 方法的情况下才可能实现。

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

class Person:
    name = 'Adam'
    
p = Person()

# setting attribute name to John setattr(p, 'name', 'John')
print('Name is:', p.name)
# setting an attribute not present in Person setattr(p, 'age', 23)
print('Age is:', p.age)

输出

Name is: John
Age is: 23

另请阅读

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战