setattr()函數(shù)設(shè)置對(duì)象屬性的值。
setattr()函數(shù)的語法為:
setattr(object, name, value)
如果要獲取對(duì)象的屬性,請(qǐng)使用getattr()。
setattr()函數(shù)具有三個(gè)參數(shù):
object -必須設(shè)置屬性的對(duì)象
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è)新屬性并為其分配值。但是,只有在對(duì)象實(shí)現(xiàn)該__dict__()方法的情況下才行。
您可以使用dir()函數(shù)檢查對(duì)象的所有屬性。
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