关于python:object .__ new__不带参数

object.__new__ takes no parameters

在一段python代码上,我一直得到以下错误:

1
2
3
4
Traceback (most recent call last):    
File"..."...in <module>  
app = App(root)  
TypeError: object.__new__() takes no parameters

这是它所指的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from tkinter import *
from ScaleAndOffsetConverter import *

class App():
    def __init_(self, master):

        self.c_var = DoubleVar()
        self.t_conv.ScaleAndOffsetConverter("F","C", 1.8, 32)
        frame = Frame(master)
        frame.pack()
        L1 = Label(frame, textvariable = self.result_var)
        L2 = Label(frame, text ="Deg C")
        E = Entry(frame, textvariable=self.c_var)
        L3 = Label( frame, text ="Deg F")
        B = Button(frame, text ="convert", command = self.convert)
        L1.grid(row=1,column=1)
        L2.grid(row=1, column=0)
        E.grid(row=0, column=1)
        L3.grid(row=0,column=0)
        B.grid(row=2, columnspan=2)
        self.result_var = DoubleVar

     def convert(self):
           c = self.c_var.get()
           self.result_var.set(self.t_conv.convert(c))

root = Tk()
app = App(root)
root.wm_title("Temp Converter")
root.mainloop()

我知道类似的问题已经发布到这一个,但我仍然不完全理解如何解决这个问题-有人知道它出现的原因或如何解决它吗?


你的__init__()函数拼写错误!

替换

def __init__(self, master):

确保单词init前后有双底线。这些函数被称为"dunder"方法,正如您所看到的,底线的数量很重要!

python查找您的__init__的实现,但找不到它,所以它使用Object__init__,它只检查是否没有根据本文传递任何参数。这张支票的结果是你看到的TypeError