Python跨脚本导入类调用实例方法缺self参数如何解决
问题原因
不是导入方式错误,你的调用逻辑不符合Python类的使用规则:
upload_model_to_algorithmia是类的实例方法(第一个参数为self的方法),不能直接通过类名调用,必须先实例化类得到实例对象,再通过实例对象调用方法,self参数会由Python自动传入,不需要手动赋值。
修复步骤
你的类AlgorithmiaUtils的构造方法__init__需要传入4个初始化参数:api_key、username、algo_name、local_dir,你需要先准备好这四个参数的实际取值,再按如下流程调用:
# 1. 先实例化类,替换参数为你自己的实际值 xpto_instance = xpto( api_key="你的Algorithmia API密钥", username="你的Algorithmia用户名", algo_name="你的算法名称", local_dir="本地项目存储路径" ) # 2. 用实例调用方法,self参数会自动传入 xpto_instance.upload_model_to_algorithmia( local_path = local_path, algorithmia_data_path = algorithmia_data_path, model_name = model_name )
补充说明
如果你不想实例化类就直接调用方法,需要把upload_model_to_algorithmia改为静态方法或者类方法,但从你类的实现来看,这个方法依赖类实例的algo_client属性,所以必须实例化后使用,不能直接通过类调用。
内容的提问来源于stack exchange,提问作者user15235239
相关产品推荐
相关产品推荐

