首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python无法实例化导入的类。

Python无法实例化导入的类。
EN

Stack Overflow用户
提问于 2022-06-22 16:59:09
回答 1查看 133关注 0票数 0

我一直在开发一个全堆栈应用程序,它检查文件并将它们上传到云端。然而,我遇到了一个我无法解决的有趣的问题。

实例化类有问题,如下所示:

代码语言:javascript
复制
class UploadFastq:

    def __int__(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()
        ...

正如您所能想象的那样,我已经修改了隐私问题的原始代码(公司指令,对不起)。这个类是处理一些与后端相关的进程,而参数只包含与后端相关的变量.另外,这个类位于不同的py脚本上,它再次导入与返回相关的函数。

现在,问题是,当我导入另一个脚本并尝试调用和实例化类时,会发生一些有趣的事情.

代码语言:javascript
复制
from lib.some_back_related_script import UploadFastq

uploads = UploadFastq(some_list=the_list,some_str=the_str,some_obj=the_obj)
uploads.process

产出:

代码语言:javascript
复制
TypeError: UploadFastq() takes no arguments

我看过是否有压痕问题,我找不到。(我正在使用PyCharm作为IDE,文件的重新格式化也没有解决)

我还在另一个脚本( gui脚本)上尝试了这一点,并可以将其部分解决为:

代码语言:javascript
复制
from lib.some_back_related_script import UploadFastq
uploader = UploadFastq()
uploader.__int__(  ##TODO how is this possible???)
some_list=the_list,some_str=the_str,some_obj=the_obj
)

但是,在脚本上,应该调用的类"__init__“方法没有解决这个问题,因此产生了以下错误:

代码语言:javascript
复制
TypeError: UploadFastq.__init__() takes exactly one argument (the instance to initialize)

在这一点上,我不知道发生了什么,以及如何解决它。我第一次经历过这样的事情。我在网上也找不到这样的问题。苏,如果你能解释一下如何解决这个问题,我将不胜感激。

P.S.:我在这个平台上做了相当长一段时间的生物信息专家/python开发人员,并找到了许多解决方案。但是,这其实是我关于堆叠溢出的第一个问题!

干杯!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-22 17:09:31

您错误地将构造函数名__init__替换为__int__

代码语言:javascript
复制
def __int__(self, some_list, some_str, some_obj, **kwargs):

因此,调用了默认构造函数(它只接受“初始化实例”作为参数),并且解释器正在抱怨给定的参数。

代码语言:javascript
复制
TypeError: UploadFastq.__init__() takes exactly one argument (the instance to initialize)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72719350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档