这里为啥会报错

这里为啥会报错

    def update(self,id,**kwargs):
if(id not in self.students):
return print("学生学号不存在")
if(id in self.students):
self.students[id]=kwargs
res=self.students[id]
print(res)
print("id是{}的学生信息已被删除,新的学生信息是班级是:{}班 姓名是:{} 年龄是:{} 性别是:{}".format(id,res["class_"],res["name"],res["age"],res["sex"]))
return print("更新成功")

if __name__ == '__main__':
users={
1:{"name":"蔡明","age":18,"class_":"A","sex":"girl"},
       2:{"name":"冯剑","age":19,"class_":"c","sex":"boy"},
       3:{"name":"余湘情","age":18,"class_":"A","sex":"girl"},
       4:{"name":"石嘉","age":17,"class_":"B","sex":"boy"},
       5:{"name":"陈玉","age":18,"class_":"A","sex":"girl"},
   }
stus=Students_info(users)
stus.get()
stus.update(id=3,kwargs={"name":"石嘉1","age":17,"class_":"B","sex":"boy"})
print("--------")

结果是:

/Users/fengjian/PycharmProjects/pythonProject1/venv/bin/python /Users/fengjian/PycharmProjects/pythonProject1/test_day3_/students_info.py

Traceback (most recent call last):

  File "/Users/fengjian/PycharmProjects/pythonProject1/test_day3_/students_info.py", line 88, in <module>

    stus.update(id=3,kwargs={"name":"石嘉1","age":17,"class_":"B","sex":"boy"})

  File "/Users/fengjian/PycharmProjects/pythonProject1/test_day3_/students_info.py", line 76, in update

    print("id是{}的学生信息已被删除,新的学生信息是班级是:{}班 姓名是:{} 年龄是:{} 性别是:{}".format(id,res["class_"],res["name"],res["age"],res["sex"]))

KeyError: 'class_'

{'kwargs': {'name': '石嘉1', 'age': 17, 'class_': 'B', 'sex': 'boy'}}

Process finished with exit code 1


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
嗯哼5071141 提问者 2021-04-24 00:49:34

知道了,可变参数的传值方式为:

stus.update(4,name="石嘉",age=17,class_="B",sex="boy")

但是这里

stus.update(4,{"name":"陈玉","age":18,"class_":"A","sex":"girl"})

报错就难理解了TypeError: update() takes 2 positional arguments but 3 were given


  • 同学,你好!在update()中,**kwargs接收的是关键字参数,而同学传入的是字典类型的参数,因此报错了。

    若传入字典类型的数据,则需要使用**对字典进行解包

    http://img1.sycdn.imooc.com//climg/608381b7095bd56c11350052.jpg

    祝学习愉快!

    2021-04-24 10:27:41
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师