我正在编写一个类来从python访问mySQL数据库。
以下是代码:
#!/usr/bin/python
import MySQLdb
import configparser
class db():
def __init__(self):
try:
self.handler = MySQLdb.connect(host="localhost", user=user, passwd=passwd, db=dbname)
self.cur = self.handler.cursor()
except:
print "Couldn't connect to db"
def query(self, query):
self.lastQuery = query
self.res = self.cur.execute(query)
def close(self):
self.handler.close()
当我试图调用该类时,它会给我以下错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "db.class.py", line 6, in <module>
class db():
File "db.class.py", line 25, in db
self.res = self.cur.execute(query)
NameError: name 'self' is not defined
我一直在寻找并且通常在那里的人忘记用“自我”来定义方法。作为一个论点。但我包括它。
有人可以帮助我吗?
感谢。
更新:
我检查了空格和标签,这不是问题。
答案 0 :(得分:5)
您的代码混合了制表符和空格,导致Python对缩进级别的语句产生了疑惑。对self.res
的分配最终是在课程级别上进行的,超出了它打算成为其中一部分的方法。
停止混合标签和空格。在编辑器中打开“显示空白”以使问题更加明显,并考虑使用-tt
标志运行Python,以便在选项卡和空格混淆时给出错误。