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

我正在使用 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'


慕田峪4524236
浏览 193回答 2
2回答

侃侃无极

您试图在没有参数的情况下调用该函数,因为该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您可以使用全局变量在您的类中设置初始值,而不是在类之外声明它。您可以将其保存在您希望的任何位置,并在调用该函数时传递它。

繁华开满天机

在某些情况下,您似乎在没有参数的情况下调用 saveVars。为了防止这种情况,您可以设置 i 的默认值,例如。def saveVars(i=0)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python