6

我是 python 新手,我正在努力完成这项工作。我正在使用 Python 2.7 和 PostgreSQL 9.3:

#! F:\Python2.7.6\python    
import psycopg2

class Database:   
    host = "192.168.56.101"
    user = "testuser"
    passwd = "passwd"
    db = "test"

    def __init__(self):
        self.connection = psycopg2.connect( host = self.host,
                                            user = self.user,
                                            password = self.passwd,
                                            dbname = self.db )
        self.cursor = self.connection.cursor

    def query(self, q):
        cursor = self.cursor
        cursor.execute(q)
        return cursor.fetchall()

    def __del__(self):
        self.connection.close()

if __name__ == "__main__":
    db = Database()
    q = "DELETE FROM testschema.test"
    db.query(q)

但是我收到一个错误“AttributeError:'builtin_function_or_method'对象没有属性'execute'”。我想我应该在 Database 类中放一些类似 self.execute = something 的东西,但我不知道我到底需要放什么。有什么建议么?

4

1 回答 1

7

你缺少最后的括号

self.cursor = self.connection.cursor()

或者

cursor = self.cursor()

但不是两者兼而有之

于 2014-02-28T22:18:39.507 回答