类型错误:button() 缺少 1 个必需的位置参数:“数字" [英] TypeError: button() missing 1 required positional argument: 'number'

查看:34
本文介绍了类型错误:button() 缺少 1 个必需的位置参数:“数字"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在为我的计算器项目开发 GUI.我似乎无法弄清楚为什么我不断收到此错误.我看到了 2 个与我正在做的事情类似的问题,但它们没有帮助.这些是我看到的问题:1) tkinter TypeError:缺少 1 个必需的位置参数: 2) TypeError: grid_configure() 缺少 1 个必需的位置参数:'self'这些问题都没有帮助我.顺便说一句,这是我的错误:

I'm working on a GUI for my calculator project. I can't seem to figure out why I keep getting this error. I saw 2 similar questions to what I was doing but they didn't help. These were the questions I saw:1) tkinter TypeError: missing 1 required positional argument: 2) TypeError: grid_configure() missing 1 required positional argument: 'self' None of these questions helped me. Btw this is my error:

C:\Users\Admin\PycharmProjects\venv\Scripts\python.exe 
"C:/Users/Admin/PycharmProjects/pythonProject/Calculator GUI v1.0.py"
Traceback (most recent call last):
 File "C:\Users\Admin\PycharmProjects\pythonProject\Calculator GUI v1.0.py", line 40, in 
<module>
button_addition =       Button(root_var, text="+", padx=50, pady=10, command=button())
TypeError: button() missing 1 required positional argument: 'number'

Process finished with exit code 1

还有我的代码:

import tkinter as Tk
from tkinter import *

root_var = Tk()
root_var.title("Calculator")

e = Entry(root_var, width=25, borderwidth=5)
e.grid(row=0, column=0, columnspan=3, padx=10, pady=10)

def button(number):

e.delete(0, END)
e.insert(0, END)


button_1 = Button(root_var, text="1", padx=50, pady=10, command=lambda:button(1))
button_2 = Button(root_var, text="2", padx=50, pady=10, command=lambda:button(2))
button_3 = Button(root_var, text="3", padx=50, pady=10, command=lambda:button(3))
button_4 = Button(root_var, text="4", padx=50, pady=10, command=lambda:button(4))
button_5 = Button(root_var, text="5", padx=50, pady=10, command=lambda:button(5))
button_6 = Button(root_var, text="6", padx=50, pady=10, command=lambda:button(6))
button_7 = Button(root_var, text="7", padx=50, pady=10, command=lambda:button(7))
button_8 = Button(root_var, text="8", padx=50, pady=10, command=lambda:button(8))
button_9 = Button(root_var, text="9", padx=50, pady=10, command=lambda:button(9))
button_0 = Button(root_var, text="0", padx=50, pady=10, command=lambda:button(0))

button_addition =       Button(root_var, text="+", padx=50, pady=10, command=button())
button_subtraction =    Button(root_var, text="-", padx=50, pady=10, command=button())
button_multiplication = Button(root_var, text="*", padx=50, pady=10, command=button())
button_division =       Button(root_var, text="/", padx=50, pady=10, command=button())
button_exponents =      Button(root_var, text="^", padx=50, pady=10, command=button())

button_equals = Button(root_var, text="=", padx=50, pady=10, command=button())
button_clear =  Button(root_var, text="C", padx=50, pady=10, command=button())




button_1.grid(row=3, column=2)
button_2.grid(row=3, column=1)
button_3.grid(row=3, column=0)

button_4.grid(row=2, column=2)
button_5.grid(row=2, column=1)
button_6.grid(row=2, column=0)

 button_7.grid(row=1, column=2)
 button_8.grid(row=1, column=1)
 button_9.grid(row=1, column=0)

 button_0.grid(row=4, column=0)
 button_addition.grid(row=4, column=1)
   button_subtraction.grid(row=4, column=2)

   button_multiplication.grid(row=5, column=0)
   button_division.grid(row=5, column=1)
   button_exponents.grid(row=5, column=2)

  button_equals.grid(row=5, column=0)
  button_clear.grid(row=5, column=1)

  root_var.mainloop()

(我怀疑这会有所帮助,但我正在使用 PyCharm)

(I doubt this will help, but I'm using PyCharm)

推荐答案

您提供的代码没有缩进,但无论如何

The code which you provided is not that indented but anyway

从第 27 行到第 34 行:你有这个代码

button_addition =       Button(root_var, text="+", padx=50, pady=10, command=button())
button_subtraction =    Button(root_var, text="-", padx=50, pady=10, command=button())
button_multiplication = Button(root_var, text="*", padx=50, pady=10, command=button())
button_division =       Button(root_var, text="/", padx=50, pady=10, command=button())
button_exponents =      Button(root_var, text="^", padx=50, pady=10, command=button())

button_equals = Button(root_var, text="=", padx=50, pady=10, command=button())
button_clear =  Button(root_var, text="C", padx=50, pady=10, command=button())

错误是因为,当传递 command=button() 时,你没有传递任何 args

The error is there because, when passing the command=button() you are not passing any args

将 args 传递给 button 函数,你应该很高兴

pass args to the button function and you should be good to go

这篇关于类型错误:button() 缺少 1 个必需的位置参数:“数字"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆