为了账号安全,请及时绑定邮箱和手机立即绑定

我在哪里分配一个变量才能在函数中(类内部)使用它?

我在哪里分配一个变量才能在函数中(类内部)使用它?

慕田峪4524236 2022-01-18 21:30:37
我正在使用 tkinter 创建一个类,它允许您输入多个产品的信息,除了更改输入字段以设置其他产品的值之外,我已经完成了所有其他操作。我将产品转换过程放入一个名为 saveVars 的函数中,该函数将输入的信息保存到特定的产品变量中,然后清除输入字段,并切换要在第二个产品变量上执行的 saveVars。    i = 1    def saveVars(i):        if i == 1:            product1.productName = self.prodName.get()            product1.productID = self.prodID.get()            product1.productSize = self.prodSize.get()            product1.productPrice = self.prodPrice.get()            product1.productQuant = self.quantity.get()        elif i == 2:            product2.productName = self.prodName.get()            product2.productName = self.prodID.get()            product2.productSize = self.prodSize.get()            product2.productPrice = self.prodPrice.get()            product2.productQuant = self.quantity.get()        elif i == 3:            product3.productName = self.prodName.get()            product3.productName = self.prodID.get()            product3.productSize = self.prodSize.get()            product3.productPrice = self.prodPrice.get()            product3.productQuant = self.quantity.get()        newProduct()        i += 1        return i我希望它能够根据 +1 函数将条目保存到的变量切换到下一个相应的产品,我让它将 i 函数作为新 i 返回,然后应该将条目保存到过程中的下一个变量,但它一直告诉我'缺少 1 个必需的位置参数:'i'
查看完整描述

2 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

您试图在没有参数的情况下调用该函数,因为该command属性不带参数只是函数的名称。

要传递参数,您可以使用partial表单functools

进口声明:

from functools import partial

您对函数的调用如下所示:

addItemButton = Button(window, text = "Add to Cart", fg='black',bg='yellow',width = 10, height = 2, command = partial(saveVars,i)) addItemButton.place(x=800,y=375)

i您可以使用全局变量在您的类中设置初始值,而不是在类之外声明它。您可以将其保存在您希望的任何位置,并在调用该函数时传递它。


查看完整回答
反对 回复 2022-01-18
?
繁华开满天机

TA贡献1816条经验 获得超4个赞

在某些情况下,您似乎在没有参数的情况下调用 saveVars。为了防止这种情况,您可以设置 i 的默认值,例如。

def saveVars(i=0)


查看完整回答
反对 回复 2022-01-18
  • 2 回答
  • 0 关注
  • 191 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号