在类中导入模块时,“NameError:name [module]未定义”

时间:2017-07-07 23:21:22

标签: python

我有以下测试代码:

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。解决方案是仅在文件中导入模块。

1 个答案:

答案 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()