Python导入自定义students.py模块调用字典值失败问题排查
自定义模块调用报错排查
你的代码存在3个核心问题,逐一修正后即可得到预期结果:
person1函数未定义入参:你调用函数时传入了"major"、"name"两个参数,但函数定义时没有预留参数接收位置,运行时会直接抛出参数数量不匹配的错误。person1函数无返回值:student1是函数内部的局部变量,仅在函数运行时存在,没有return语句返回的话,外部调用函数只能拿到空值None,根本访问不到内部的字典。- 取值逻辑错误:字典的键值访问是在拿到字典对象后,通过
字典名[键名]的方式取值,不是把键名作为参数传给函数。
修正步骤
- 修改
students.py,给函数加返回值,把内部字典返回出来:def person1(): student1 = { "name": "Joe", "major": "Programming", "format": "Campus Live" } return student1 - 修改调用文件的逻辑,先拿到函数返回的完整字典,再按键取值:
import students # 先调用函数获取完整的学生信息字典 stu = students.person1() # 再通过键取对应属性值 x = stu["major"] y = stu["name"] print(x) print(y) - 确认两个
.py文件存放在同一目录下,避免Python找不到自定义模块触发导入错误。
运行效果
修正后运行调用文件,会输出你预期的结果:
Programming Joe
内容的提问来源于stack exchange,提问作者denim
相关产品推荐
相关产品推荐

