我需要一个可以在表中插入值的泛型函数。我怎么能用可变数量的参数做到这一点。
例如:
def create_table(self, tb_name, *args):
sqlite3.connect(self.db_name).cursor().execute("DROP TABLE IF EXISTS users")
sqlite3.connect(self.db_name).cursor().execute("CREATE TABLE users(*args[0], *args[1], ....*args[n])")
功能必须兼顾两种方式。
提前谢谢。
答案 0 :(得分:0)
考虑join
将列表中的所有项连接到一个语句中。以下假定所有 args 的TEXT
类型:
def create_table(self, tb_name, *args):
vars = " TEXT,".join(*args) + " TEXT"
sqlite3.connect(self.db_name).cursor().execute("DROP TABLE IF EXISTS users")
sqlite3.connect(self.db_name).cursor().execute("CREATE TABLE users ({})".format(vars))
# CREATE TABLE users (name TEXT, password TEXT)
# CREATE TABLE users (name TEXT, password TEXT, email TEXT)