我有以下测试代码:
import sqlite3
class database:
def __init__(self, name):
self.name = name
def connect(name):
db = sqlite3.connect("%s.db" % self.name)
c = db.cursor()
def test(self):
print (3)
如果我运行database('name').test()
,我会获得3
,这样就行了。但是,如果我尝试database('name').connect()
,我会得到,“NameError:name'sqlite3'未定义”
课程对我来说相对较新,我仍在努力弄清楚它们是如何工作的。非常感谢您的帮助。
编辑:请参阅答案中的评论解决方案。问题似乎是我在文件和笔记本中导入了sqlite3。解决方案是仅在文件中导入模块。
答案 0 :(得分:2)
您的描述中某处可能有拼写错误,因为我认为您在执行时会先得到另一个错误
data = database()
data.test()
data.connect('name')
您需要将self
添加到连接def以使其成为正确的类方法。连接通话中也有拼写错误。以下应该有效
import sqlite3
class database:
def __init__(self, name):
self.name = name
def connect(self):
db = sqlite3.connect("%s.db" % self.name)
c = db.cursor()
def test(self):
print(3)
然后做
data = database('test')
data.connect()