Python 错误-\uuuu init\uuuuu()正好接受2个参数(给定1个)

Python 错误-\uuuu init\uuuuu()正好接受2个参数(给定1个),python,Python,我试图从另一个.py初始化类(extraropt),但它给了我一个错误,我已经搜索了,但还没有找到解决方案 这是我打电话的电话号码: main.py: class GameWindow(ui.ScriptWindow): def __init__(self, stream): import extraop exec 'extraop.extraropt().Show(stream)' 下面是我试图调用的一个py的代码(仅限init和del): extr

我试图从另一个.py初始化类(extraropt),但它给了我一个错误,我已经搜索了,但还没有找到解决方案

这是我打电话的电话号码:

main.py:

class GameWindow(ui.ScriptWindow):
    def __init__(self, stream):
        import extraop

        exec 'extraop.extraropt().Show(stream)'
下面是我试图调用的一个py的代码(仅限init和del):

extraop.py

class extraropt(ui.Window):
    def __init__(self, stream):
        ui.Window.__init__(self)
        self.BuildWindow()
        self.stream=stream
    def __del__(self):
        ui.Window.__del__(self)
它给出了以下错误:

Error - __init__() takes exactly 2 arguments (1 given)

您需要以以下方式初始化父级:

super(extraropt, self).__init__(stream)

exec'extrop.extropt().Show(stream)
行中的
stream
变量应传递到
extropt
类的构造函数中,如下所示:

exec 'extraop.extraropt(stream).Show()'
排队

exec 'extraop.extraropt().Show(stream)'
通过创建
extraopt
的新实例,您正在隐式调用
extraropt.\uuu init\uuu()
。在代码中,显示
extropt.\uuu init\uuu()
需要第二个(
stream
)参数,因此必须传入该参数

extraop.extraropt(stream).Show()

顺便说一句,没有理由说您应该执行
exec
,而不是像上面那样显式地调用它。您也没有理由将
\uuu del\uu()
方法定义为只调用父
\uuu del\uu()
方法。

您好,欢迎光临。在哪一行出现错误?欢迎来到Stack Overflow Miguel!您可能想阅读有关如何发布好问题的常见问题解答。我们喜欢删掉那些闲聊的行为,直截了当地说,因此进行编辑。此外,最好是发布一个完整的、最小的工作示例(包括错误的完整回溯),这样我们可以更好地帮助您。第二行,我没有这么做,但乔尔·科内特得到了我想要的。无论如何,谢谢你。