我目前对此感到困惑。默认情况下,限制为none,但如果我要以unitest方式测试它并询问特定数量的注释,则会说类型不匹配。我知道“int”不是正确的术语。我只是说限制应该是一个整数。根据unitest中的限制,解决输入的正确方法是什么。
def list_comments(db, limit=None): limit = "int"
limit = "int"
cur = db.cursor()
cur.execute("SELECT id, comment FROM comments ORDER BY id DESC LIMIT ?", (limit,))
results = cur.fetchall()
print results
return results
答案 0 :(得分:0)
从函数后面删除limit = "int"
,并将limit
参数默认设置为0
,并将占位符用作%s
;
def list_comments(db, limit=0):
cur = db.cursor()
cur.execute("SELECT id, comment FROM comments ORDER BY id DESC LIMIT %s", (str(limit)))
results = cur.fetchall()
print results
return results
如果还不需要,也请删除逗号; (limit,)
。
我故意将限制值解析为字符串(如果它确实是一个整数,你可以检查它),让它始终与%s
占位符匹配。