为了账号安全,请及时绑定邮箱和手机立即绑定

为什么要用for?在加入job一项之后,**kw不是已经将它转成dict吗?为什么还要遍历一次,赋值?

class Person(object):

    def __init__(self,name,gender,birth,**kw):

        self.name = name

        self.gender = gender

        self.birth = birth

        for k,v in kw.iteritems():

            setattr(self,k,v)


xiaoming = Person('Xiao Ming', 'Male', '1990-1-1', job='Student')


print xiaoming.name

print xiaoming.job

为什么要用for?在加入job一项之后,**kw不是已经将它转成dict吗?为什么还要遍历一次,赋值?

正在回答

3 回答

 #可以实例化多个k-v对,即任意数量的关键字
 for k,v in kw.iteritems():
            setattr(self,k,v)
0 回复 有任何疑惑可以回复我~

就是因为转换成dict了,你可以理解为转成带key值得数组(arr =('key1':'value1','key2:'value2')),根据key值取出每一项,为了快速所以要循环取出。不然就只有单次取值,例如:(z1=arr[key1]  z1=arr[key2]。。。。。)

这里做的,是循环根据key值赋值(arr['key']=value)(其中job就是key值,=号后面的就是value值)

0 回复 有任何疑惑可以回复我~

转成dict后迭代取出内容用for实现把

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255532    人
  • 解答问题       3038    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

为什么要用for?在加入job一项之后,**kw不是已经将它转成dict吗?为什么还要遍历一次,赋值?

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号