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

我用self.k = v 代替setattr(self, k,v),为什么不行?

代码如下:

class Person(object):

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

        self.name = name

        self.gender = gender

        self.birth = birth

        for k,v in args.iteritems():

            print k,":",v

            self.k = v


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


print xiaoming.name

print xiaoming.job


正在回答

3 回答

**args是表示可以接收多个变量,**kw是可接收多个关键字参数,参数的类型是dic,args.iteritems()返回的是一个list

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

小猫娟娟 提问者

非常感谢,我明白了
2017-01-06 回复 有任何疑惑可以回复我~
#2

南区大表哥 回复 小猫娟娟 提问者

挖坟。。
2017-06-06 回复 有任何疑惑可以回复我~

self.k = v

后, 属性名是k,不是传入的job。可以将p1.k打印出来。

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

是*args 和 **args

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

举报

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

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

进入课程

我用self.k = v 代替setattr(self, k,v),为什么不行?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信