Python调用同目录elevation2.py内elevation2函数报'module'不可调用报错解析
报错解析
报错字面含义
TypeError: 'module' object is not callable 指Python解释器检测到你尝试调用模块对象,模块属于不可直接用()执行的对象类型,因此抛出类型错误。
触发原因
- 你通过
import elevation2导入代码时,加载的是elevation2.py整个文件为一个名为elevation2的模块,而非文件内定义的elevation2函数 - 后续直接写
elevation2(w, lngmin,...)调用时,解释器将elevation2识别为模块对象,模块无法加括号执行,因此触发报错
修复方案
- 方案1:保留导入方式,修改调用语法
需用「模块名.函数名」格式调用模块内函数,将所有elevation2(参数)改为:elevation2.elevation2(你的参数列表) - 方案2:修改导入语句,直接导入目标函数
将导入行改为:
此时导入的是函数本身,直接调用from elevation2 import elevation2elevation2(参数)即可
代码额外问题
callgoogle函数else分支内的调用参数逻辑不匹配:
该分支循环遍历经度范围,但原代码写的elevo = elevation2(w, lngmin,w,lngmax,samples2)未匹配elevation2的参数定义(lat1, lng1,lat2,lng2,samples),需调整为对应经纬度参数逻辑。
内容的提问来源于stack exchange,提问作者J.Doe
相关产品推荐
相关产品推荐

