Python跨文件导入函数返回值报AttributeError的解决方法
报错核心原因
现有代码存在两个直接错误:
- 导入路径错误:
analytics_dict函数定义在contacts.py文件中,你写的from department import analytics_dict是从当前department.py文件自身导入,根本找不到目标函数。 - 调用逻辑错误:
analytics_dict是需要传参调用的函数,不是已经生成好的字典对象。你直接对函数对象调用get方法,自然会触发'function' object has no attribute 'get'报错。
正确实现代码
修改department.py中的导入和调用逻辑即可:
# 从正确的contacts模块导入目标函数 from contacts import analytics_dict as analytics # 先构造函数要求的入参字典,替换为你实际的业务参数值 input_params = { "BP_NAME": "实际的业务名称值", "BP_FILE": "实际的GitHub blob格式文件链接" } # 传入参数调用函数,拿到返回的结果字典 analytics_result = analytics(input_params) # 从返回字典中取name字段值 candidate_name = analytics_result.get("name")
注意事项
- 要保证
contacts.py和department.py处于同一工作目录,或者contacts.py所在路径在Python的模块搜索路径中,否则会触发模块找不到的导入错误。 - 传入的参数字典必须包含
BP_FILE、BP_NAME两个键,其中BP_FILE的值必须符合仓库地址/blob/提交哈希/文件路径的格式,否则函数内部的字符串分割逻辑会抛出异常。 - 所有函数必须加括号、传入要求的参数执行后,才能拿到返回值,直接写函数名指代的是函数对象本身,不具备字典的
get方法。
内容的提问来源于stack exchange,提问作者Jessica
相关产品推荐
相关产品推荐

