Python 为什么super(MainWindow,self),_init__(*args,**kwargs)NameError:name'__初始';没有定义

Python 为什么super(MainWindow,self),_init__(*args,**kwargs)NameError:name'__初始';没有定义,python,module,traceback,mainwindow,Python,Module,Traceback,Mainwindow,当我运行这个程序时,我遇到了一个我自己无法解决的问题,我希望在这里找到答案 from PyQt5.QtGui import * from PyQt5.QtWidgets import* from PyQt5.QtCore import * import operator from Calculator import Ui_MainWindow # Calculator state. READY = 0 INPUT = 1 class MainWindow(QMainWindow,

当我运行这个程序时,我遇到了一个我自己无法解决的问题,我希望在这里找到答案

    from PyQt5.QtGui import *
from PyQt5.QtWidgets import*
from PyQt5.QtCore import *

import operator

from Calculator import Ui_MainWindow

# Calculator state.
READY = 0
INPUT = 1

class MainWindow(QMainWindow, Ui_MainWindow):
    def __init__(self, *args, **kwargs):
        super(MainWindow, self),__init__(*args, **kwargs)
        self.setupUi(self)

        # setup numbers
        for n in range(0, 10):
            getattr(self, 'pushButton_nks' % n).pressed.connect(lambda v=n: self.input_number(v))

        # setup operation
        self.pushButton_add.pressed.connect(lambda: self.operation(operator.add))
        self.pushButton_sub.pressed.connect(lambda: self.operation(operator.sub))
        self.pushButton_mul.pressed.connect(lambda: self.operation(operator.mul))
        self.pushButton_div.pressed.connect(lambda: self.operation(operator.truediv))

        self.pushButton_pc.pressed.connect(self.operation_pc)
        self.pushButton_eq.pressed.connect(self.equals)

        # setup actions
        self.actionReset.triggered.connect(self.reset)
        self.pushButton_ac.pressed.connect(self.reset)

        self.actionExit.triggered.connect(self.close)

        self.pushButton_m.pressed.connect(self.memory_store)
        self.pushButton_mr.pressed.connect(self.memory_recall)

        self.memory = 0
        self.reset()

        self.show()

    def display(self):
        self.lodNumber.display(self.stack[-1])

    def reset(self):
        self.state = READY
        self.stack = [0]
        self.last_operation = None
        self.current_op = None
        self.display()

    def memory_store(self):
        self.memory = self.lodNumber.value()

    def memory_recall(self):
        self.state = INPUT
        self.stack[-1] = self.memory
        self.display()

    def input_number(self, v):
        if self.state == READY:
            self.state = INPUT
            self.stack[-1] = v
        else:
            self.stack[-1] = self.stack[-1] * 10 + v

        self.display()

    def operation(self, op):
        if self.current_op: #complete the current operation
            self.equals()

        self.stack.append(0)
        self.state = INPUT
        self.current_op = op

    def operation_pc(self):
        self.state = INPUT
        self.stack[-1] *= 0.01
        self.display()

    def equals(self):
        #support to allow '=' tp repeat previous operation
        #if no futher input has been added.
        if self.state == READY and self.last_operation:
            s, self.current_op = self.last_operation
            self.stack.append(s)

        if self.current_op:
            self.last_operation = self.stack[-1], self.current_op

            try:
                self.stack = [self.current_op(*self.stack)]
            except Exception:
                self.lodNumber.display('Err')
                self.stack = [0]
            else:
                self.current_op = None
                self.state = READY
                self.display()

if __name__ == '__main__':
    app = QApplication([])
    app.setApplicationName("calculon")

    window = MainWindow()
    app.exec_()
文件“C:/Python35/Lib/site packages/PyQt5/qt-ddesain/callKalkulator.py”,第109行,在 窗口=主窗口() 文件“C:/Python35/Lib/site packages/PyQt5/qt ddesain/callKalkulator.py”,第15行,在init 超级(主窗口,自身),init(*args,**kwargs) 名称错误:未定义名称“init


我的代码遇到了这样的问题,有没有办法解决它

调用父类构造函数的语法中有一个明显的错误:

Traceback (most recent call last):

请注意,与python3相比,您只需使用
super()。\uuuu init\uuu(*args,**kwargs)

逗号需要是句点。这不是语法错误。否则它将引发一个
SyntaxError
。我显然认为我也没有使用确切的措辞
SyntaxError
@克里斯还是修改了答案。你不必说
SyntaxError
。如果它在语法上是有效的,那就不是语法错误。这是一个逻辑错误,或者是一个打字错误,但是你想看看它。你能给我一个例子吗?你所说的例子是什么意思?只需将您的代码中的
替换为
,如答案@Tegarrangga中所述
super(MainWindow, self).__init__(*args, **kwargs)