Python 缺少1个必需的位置参数:';自我';尝试创建按钮时

Python 缺少1个必需的位置参数:';自我';尝试创建按钮时,python,tkinter,Python,Tkinter,我试图为我的计算器制作一个退格按钮,一次只删除一个整数,但是当我运行程序时,我遇到了一个问题,我“缺少一个必需的位置参数:‘self’”。我做了很多搜索,但还没有找到有效的解决方案。提前感谢:) 在python类的函数中使用self时,它将引用调用该方法的类的实例。 这是隐式发生的,因此如果您像那样使用self,则不需要显式赋值。 在这种情况下,您不能使用self,因为您的函数不是类的一部分 按照您使用它的方式,它只是一个普通参数,如果您调用该函数,则需要为其赋值。缺少该值,这就是为什么会出现错

我试图为我的计算器制作一个退格按钮,一次只删除一个整数,但是当我运行程序时,我遇到了一个问题,我“缺少一个必需的位置参数:‘self’”。我做了很多搜索,但还没有找到有效的解决方案。提前感谢:)


在python类的函数中使用
self
时,它将引用调用该方法的类的实例。
这是隐式发生的,因此如果您像那样使用
self
,则不需要显式赋值。
在这种情况下,您不能使用
self
,因为您的函数不是类的一部分

按照您使用它的方式,它只是一个普通参数,如果您调用该函数,则需要为其赋值。缺少该值,这就是为什么会出现错误


您可以在上阅读类和
self

错误会准确地告诉您出了什么问题。您已经编写了一个名为
backspace\u b
的函数,它接受一个名为
self
的参数。但是,调用函数时没有传递该参数

它看起来像是从类中复制出来的,但由于它对名为
self.current
的变量进行操作,并且您既没有定义
self
也没有定义名为
current
的变量,因此它不可能按定义工作。这就是为什么你不应该在不了解代码如何工作的情况下从互联网上复制代码

由于要模拟退格键,只需删除textvariable的最后一个字符。由于还将变量
global
保留为输入字段中内容的副本,因此还需要删除其中的最后一个字符

def backspace_b():
    global operator
    value = text_Input.get()
    if value:
        text_Input.set(value[:-1])
        operator = operator[:-1]

错误行是什么?是什么让你认为最后一个函数需要
self
参数?请提供一个最小的代码和完整的错误。请发布完整的错误回溯。这可能与以下事实有关:
按钮的
命令
需要是一个没有参数的函数,而您传递给它的是一个单参数函数……这里不能使用
self
,它只能在类中使用-这不是很准确
self
只是一个名称——一种约定——对Python没有实际意义。当用作实例方法的第一个参数时,它有一个特殊的含义。但是,它只是一个名字…@Tomerikoo你说得对,我编辑了答案,使它更精确谢谢你的帮助!我对python和一些我不知道的部分有点陌生,所以我尝试在互联网上查找。这就是为什么我来到stack overflow,因为我知道像你这样的人会回答我的问题。感谢您提供的解决方案:)。实际上我所做的很愚蠢,我知道通读你说的是我的代码有问题:)虽然如果我用这个按钮,然后实际使用按钮,然后去输入另一个号码,它只会将我删除的号码添加到新号码的前面。例如:我退格“2”。它返回到不显示任何内容。然后我按“3”。它显示“23”。有什么建议吗???@Python\u user\u 3:这是因为您正在将输入小部件中的值复制到全局
操作符
变量中。您需要调整
运算符
变量,或者更改逻辑,以便始终直接使用entry小部件中的值。您知道如何对其进行编码吗,因为我不知道如何进行编码?感谢您为我提供使计算器工作的代码:)
def backspace_b():
    global operator
    value = text_Input.get()
    if value:
        text_Input.set(value[:-1])
        operator = operator[:-1]