python内置函数getattr()和setattr()
一、简介
setattr()
函数对应函数 getattr()
,用于设置属性值,该属性不一定是存在的。
二、详解
setattr()语法:setattr(object, name, value)
参数:
- object是要赋予属性的对象
- name是属性的名称,注意name需要是str类型的数据
- value是属性的值
getattr()语法:getattr(object, name[, default])
- object是要查看属性的对象
- name是要查看的属性名
- default是若无此属性,指定的返回值
三、代码
先举个简单的例子,查看属性,与设置属性
class Car(object):
def __init__(self, price):
self.price = price
BWM = Car('70w')
print(getattr(BWM, 'price'))
print(getattr(BWM, 'year', '2020/11/11'))
setattr(BWM, 'price', '80w') # 设置年份属性
print(BWM.price)
再看看一般的应用,比如当我们不知道初始化类的时候需要指定多少个参数属性,我们可以这样写
class User(object):
def __init__(self, **kwargs):
for k, v in kwargs.items():
setattr(self, k, v)
Jack = User(name='Jack', age=20, gender='male')
print(getattr(Jack, 'name'), end=' ')
print(Jack.age, end=' ')
print(Jack.gender, end=' ')
Jack 20 male