Python - 无法访问类属性

时间:2016-08-11 18:16:13

标签: python class

我正在编写一个类来从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

我一直在寻找并且通常在那里的人忘记用“自我”来定义方法。作为一个论点。但我包括它。

有人可以帮助我吗?

感谢。

更新:

我检查了空格和标签,这不是问题。

1 个答案:

答案 0 :(得分:5)

您的代码混合了制表符和空格,导致Python对缩进级别的语句产生了疑惑。对self.res的分配最终是在课程级别上进行的,超出了它打算成为其中一部分的方法。

停止混合标签和空格。在编辑器中打开“显示空白”以使问题更加明显,并考虑使用-tt标志运行Python,以便在选项卡和空格混淆时给出错误。