📜  Python setattr()函数

📅  最后修改于: 2020-10-30 05:35:26             🧑  作者: Mango

Python setattr()函数

Python setattr()函数用于为对象的属性设置值。它接受三个参数:对象,字符串和任意值,但不返回任何参数。当我们想要向对象添加新属性并为其设置值时,这将很有帮助。该函数的签名在下面给出。

签名

setattr (object, name, value)

参量

对象:这是一个允许更改其属性的对象。

name:属性的名称。

value:设置为属性的值。

所有参数都是必需的。

返回

它返回None到调用者函数。

让我们看一下setattr()函数的一些例子,以了解其功能。

Python setattr()函数示例1

在这里,我们将添加一个新属性,并使用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

Python setattr()函数示例2

如果我们不想设置任何值,则默认情况下可以将其设置为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

Python setattr()函数示例3

即使调用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