“ TypeError:product_show()缺少1个必需的位置参数:'Option'”

时间:2019-07-26 08:13:07

标签: python-3.x sqlite

我建立了一个带有数字的菜单,我的选择变量是Option,类型为int。 5-Hoodie将在我的SQL数据库中显示所有类别为Hoodie的东西。我已经创建了一个模块,并且正在使用名为LunaPy

的类
Option = int(input("Option: "))
LunaPy.product_show(Option)

我正在使用Python中的SQL库

    def product_show(self,Option):
        product_dict ={1:"Belt",2:"Blazer",3:"Coat",4:"Dress",5:"Hoodie",6:"Jacket",7:"Jeans",8:"Pants",9:"Shoes",10:"Shorts",11:"Sunglasses",12:"Sweater",13:"SweatShirt",14:"TShirt",15:"Underwear"}

        query = "SELECT * FROM LunaPyDataBase WHERE Category = ?"
        self.cursor.execute(query,(product_dict[Option],))

我希望Option变量会将值返回给函数,以便函数可以使用该值来选择字典中的类别。并打印该选定类别中的项目。

1 个答案:

答案 0 :(得分:1)

将方法更改为此:

stocks
   15

或执行以下操作:

@staticmethod
def product_show(Option):
    product_dict ={1:"Belt",2:"Blazer",3:"Coat",4:"Dress",5:"Hoodie",6:"Jacket",7:"Jeans",8:"Pants",9:"Shoes",10:"Shorts",11:"Sunglasses",12:"Sweater",13:"SweatShirt",14:"TShirt",15:"Underwear"}

    query = "SELECT * FROM LunaPyDataBase WHERE Category = ?"
    self.cursor.execute(query,(product_dict[Option],))

函数定义中的option = int(input("Option: ")) lunaPy = LunaPy() lunaPy.product_show(option) 指向self类的对象实例。如果您的方法不需要LunaPy的实例,则可以将其标记为静态...,然后可以像LunaPy这样使用它,但将无法使用任何实例变量或该类的方法。

另一种选择是只创建实例并使用该实例调用方法。

编辑:

没有注意到函数内部的Class.method()。第一个选项无效,因为需要对象实例。 self的第二个选项应该可以工作。