📅  最后修改于: 2020-10-30 05:35:26             🧑  作者: Mango
Python setattr()函数用于为对象的属性设置值。它接受三个参数:对象,字符串和任意值,但不返回任何参数。当我们想要向对象添加新属性并为其设置值时,这将很有帮助。该函数的签名在下面给出。
setattr (object, name, value)
对象:这是一个允许更改其属性的对象。
name:属性的名称。
value:设置为属性的值。
所有参数都是必需的。
它返回None到调用者函数。
让我们看一下setattr()函数的一些例子,以了解其功能。
在这里,我们将添加一个新属性,并使用setattr()函数设置其值。
class Student:
id = 0
name = ""
def __init__(self, id, name):
self.id = id
self.name = name
student = Student(102,"Sohan")
print(student.id)
print(student.name)
#print(student.email) product error
setattr(student, 'email','sohan@abc.com') # adding new attribute
print(student.email)
输出:
102
Sohan
sohan@abc.com
如果我们不想设置任何值,则默认情况下可以将其设置为None。
class Student:
id = 0
name = ""
def __init__(self, id, name):
self.id = id
self.name = name
student = Student(102,"Sohan")
print(student.id)
print(student.name)
setattr(student, 'email',None) # adding new attribute having None
print(student.email)
输出:
102
Sohan
None
即使调用setattr()函数,我们也可以重新分配(重置)属性的值。请参见下面的示例。
class Student:
id = 0
name = ""
def __init__(self, id, name):
self.id = id
self.name = name
student = Student(102,"Sohan")
print(student.id)
print(student.name)
setattr(student, 'email',None) # adding new attribute having None
student.email = "Tom@abc.com" # Assigning new value
print(student.email)
输出:
102
Sohan
Tom@abc.com