setattr()函數(shù)設(shè)置對象屬性的值。
setattr()函數(shù)的語法為:
setattr(object, name, value)
如果要獲取對象的屬性,請使用getattr()。
setattr()函數(shù)具有三個(gè)參數(shù):
object -必須設(shè)置屬性的對象
name -屬性名稱
value -賦予屬性的值
setattr()方法不返回任何內(nèi)容。返回None。
class Person:
name = 'Adam'
p = Person()
print('修改前:', p.name)
#將名稱設(shè)置為'John'
setattr(p, 'name', 'John')
print('修改后:', p.name)輸出結(jié)果
修改前: Adam 修改后: John
如果找不到該屬性,則setattr()創(chuàng)建一個(gè)新屬性并為其分配值。但是,只有在對象實(shí)現(xiàn)該__dict__()方法的情況下才行。
您可以使用dir()函數(shù)檢查對象的所有屬性。
class Person:
name = 'Adam'
p = Person()
# 將屬性名設(shè)置為 John
setattr(p, 'name', 'John')
print('Name is:', p.name)
# 設(shè)置Person中不存在的屬性
setattr(p, 'age', 23)
print('Age is:', p.age)輸出結(jié)果
Name is: John Age is: 23