Python跨文件调用PatchFinder类方法报module不可调用错误如何解决
问题原因
你遇到的报错核心是Python的导入逻辑和Java存在差异:
你执行import PatchFinder时,导入的是PatchFinder.py这个模块对象,而非模块内定义的PatchFinder类,直接调用PatchFinder()相当于试图调用模块对象,就会抛出'module' object is not callable的报错。
修复方案
你可以选择以下任意一种方式修复导入问题:
方案1:导入时指定引入对应类
把导入语句修改为:
from PatchFinder import PatchFinder
后续就可以直接用PatchFinder类实例化对象。
方案2:通过模块名访问类
如果保留原有的import PatchFinder导入语句,实例化时需要明确指定模块下的类:
tf = PatchFinder.PatchFinder(传入dataset参数, 传入pf浮点型参数)
其他需要修复的逻辑问题
解决导入问题后,你还需要修正两处参数缺失的问题:
PatchFinder类的__init__方法要求传入两个必填参数dataset、pf(浮点型),你当前实例化时没有传入任何参数,会触发参数缺失报错TopFeaturesFind方法要求传入一个Graph类型的参数g,你调用时没有传入对应参数,也会触发报错,需要按需求补全入参。
内容的提问来源于stack exchange,提问作者Adnan Ali
相关产品推荐
相关产品推荐

