TypeError:-:“ int”和“ builtin_function_or_method”的不受支持的操作数类型

时间:2018-12-19 21:23:32

标签: python python-3.x sqlite tkinter

我正在尝试从sqlite3数据库中的product_qty中减去用户输入的整数,但出现此错误:

TypeError:--'int'和'builtin_function_or_method'的不受支持的操作数类型

这是给出此错误时涉及的两个功能。

def Move():
        curItem = tree.focus()
        print (tree.item(curItem))
        contents = (tree.item(curItem))
        getvalue = contents.get('values')
        print(getvalue)
        selecteditem = contents['values']
        updateStock(id, getvalue[0])
        Database()
        cursor.execute("INSERT INTO `basket` VALUES(?, ?, ?, ?)", getvalue)
        conn.commit()
        PRODUCT_ID.set("")
        PRODUCT_NAME.set("")
        PRODUCT_PRICE.set("")
        PRODUCT_QTY.set("")
        conn.close()

def updateStock(qty, id):
        t = (id,)
        Database()
        cursor.execute("SELECT product_qty FROM product WHERE product_id = ?", t)
        old_qty = cursor.fetchone()
        new_qty = 0
        new_qty = int(old_qty[0]) - qty
        cursor.execute("UPDATE product SET product_qty = ? WHERE product_id = ?", (new_qty, id))
        conn.commit()
        conn.close()

1 个答案:

答案 0 :(得分:0)

您正在将内置的id函数传递给updateStock。那并不能很好地结束。我会避免使用变量的名称。您需要在Move函数中找到一种方法来确定您感兴趣的ID。