You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python导入外部类实例化报takes no arguments错误排查

问题排查结论

核心错误是类构造方法名拼写错误:
Python 类实例化时自动触发的构造方法固定为双下划线包裹的__init__(是initialize的缩写,负责实例初始化逻辑),你的代码里把方法名写成了__int__——这是完全不同的另一个内置魔术方法,作用是定义实例被int()函数强转时的返回值,和实例初始化没有任何关系。

你遇到的所有异常都可以对应解释:

  • 由于你没有手动定义正确的__init__方法,Python会为类自动生成一个仅接收self参数的无参默认构造方法,因此你传入参数实例化类时,会直接抛出TypeError: UploadFastq() takes no arguments错误。
  • 你无参实例化后手动调用__int__方法能部分运行,本质是你自己定义的__int__就是个普通实例方法,手动调用时给实例绑定了对应属性,自然能跑通部分逻辑,但这完全不符合构造方法的正常调用流程。
  • 你尝试手动调用__init__传参报错,是因为此时调用的是Python自动生成的默认无参__init__,该方法只接收实例自身作为参数,传入其他参数必然触发参数数量不匹配的错误。
修复方案
  1. 把类中写错的方法名__int__修正为__init__,修正后的核心代码如下:
class UploadFastq:

    def __init__(self,
                some_list, some_str, some_obj, **kwargs):
        self.some_list = some_list
        self.some_obj = some_obj
        self.some_str = some_str
        

    def process(self):
        self.some_methods_calling_processes()
        ...
  1. 修正调用逻辑的笔误:你写的uploads.process只是引用了方法对象,并没有实际执行,需要加括号写成uploads.process()才会真正运行处理流程。

修复后正常传参实例化即可运行,不需要手动调用任何双下划线开头的内置方法。

内容的提问来源于stack exchange,提问作者Berk Gonenc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 21:27:22