课程
/后端开发
/Python
/python进阶
setattr(self,k,v)相当于self.k = v
为什么不能替换呢
2015-07-24
源自:python进阶 5-6
正在回答
不是的哦。
self.k意思是给实例增加了个k属性,这里的k是固定不变的,和name,score什么的没区别。
而setattr(self, k, v)里的k和v是变量,是动态变化的。
见下图,直接打印 a.k属性,这个属性名称就是k。
setattr(self,k,v)是设置新的属性并且赋值,而self.k = v 只是赋值了一个变量,如果程序增加新的属性,会提示没有该新属性,所以不能替换,前者的功能大于后者。
glre09
setattr(self,k,v) 是相当于self.k = v吗?
小二百
顺序只要与for k,v in kw.iteritems()的k,v一致即可
举报
学习函数式、模块和面向对象编程,掌握Python高级程序设计