我通过参数传递一个元组,得到以下错误。 我在网上搜索,工作方法是正确的。有人能看一下吗
人类
from datetime import datetime
from sqldata import Sqldata
class Person:
def __init__(self, addr, client):
self.addr = "192.12"
self.client = "demorun"
self.name = none
def set_name(self, name):
self.name = name
values = (self.addr, self.name, str(datetime.now()))
Sqldata.create_connclient(values)
Sqldata类将数据写入数据库
import sqlite3
from sqlite3 import Error
import os
fileDir = os.path.dirname(os.path.realpath(__file__))
filename = "dbConnClients.db"
db_file = os.path.join(fileDir, "database\\" + filename)
class Sqldata:
def __init__(self):
self.conn = None
try:
self.conn = sqlite3.connect(db_file)
except Error as e:
print(e)
def create_connclient(self, vdata):
print(vdata)
conn = self.conn
sqlquery = ''' SELECT id FROM ConnClients WHERE name = ? '''
cur = conn.cursor()
cur.execute(sqlquery, vdata[1])
错误:
File "...person.py", line 23, in set_name
Sqldata.create_connclient(vdata)
TypeError: create_connclient() missing 1 required positional argument: 'vdata'
如果要将元组中的两个值作为两个参数
self
和vdata
传递,应该这样编写星号将打开元组。然而,请阅读justahuman的回复,因为我认为他们可能发现了一个更深层次的问题
我假设Sqldata是您创建的一个类(由于缺少特定的代码和适当的缩进而犹豫不决)。因为它是一个类,所以在调用它的方法之前需要实例化它
我不知道如果你打算匿名调用它,为什么你会将其列为一个类,但以下是解决方案:
这意味着我们刚刚创建了类对象
Sqldata
的一个实例create_connclient
有两个参数,self
和vdata
。通过调用Sqldata()
,您在调用create_connclient
时只创建了一个self
值,并且满足了所有必需的参数(如错误中所示)Sqldata类已正确启动
TypeError表示我的类方法不接受元组。还是我错了
相关问题 更多 >
编程相关推荐