问题请教
Topic source给你举个例子:
# 把dict的key - value复制到obj,前提是obj有对应的property
def dict2bean(obj, d):
for k, v in items(d):
if hasattr(obj, k):
setattr(obj, k, v) # 能写成obj.k = v吗?
有些时候那个property name也是变量
- 1
给你举个例子:
# 把dict的key - value复制到obj,前提是obj有对应的property
def dict2bean(obj, d):
for k, v in items(d):
if hasattr(obj, k):
setattr(obj, k, v) # 能写成obj.k = v吗?
有些时候那个property name也是变量
用户7734702421
以obj为例,请问setattr(obj,'y',19)和obj.y=19有什么区别呢?感觉后者写法上貌似更简洁直观,而且廖老师说的是在不知道对象信息的时候,我们才用hasattr()之类的函数,但是如果通过hasattr函数确定了对象含有某个属性之后,为什么不直接用obj.y的形式对该属性进行读取和赋值呢,因为貌似使用getattr(obj,'y')的前提就是已经知道了obj含有属性y,而setattr(obj,'y',19)则感觉不需要知道obj结构,相当于自行新增的一个属性y,感觉完全可以用obj.y=19替代。