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
另请阅读