葡萄葡萄
2020-10-05 13:24
for k, v in kw.items(): setattr(self, k, v)
k,v 是什么意思?
按照上面改名字alice -> adam的例子,我理解是:
kw是tuple,里面的循环用item。
setattr函数(self是具体实例,旧属性,新属性)
但是这个后面外部传入的:age=18, course='Python,两个都是新属性啊。
而且要是后期传入3个属性的话,那k,v两个参数也不够用啊?
class Person(object): def __init__(self,name,gender,**kw): self.name = name self.gemder = gender for k ,v in kw.items(): setattr(self,k,v) p = Person('bob','male',age=18,course='python') print(p.age) print(p.course)
这个k就是age和course,然后这个v就是18和python,**kw是值多参数存储
key和value的键值对,不是旧属性、新属性;三个或更多新的键值对都是一样的;如 age=18, key是age,value是18
Python3 进阶教程(新版)
41910 学习 · 236 问题
相似问题