2014-02-28 6 views
5

Ich bin neu in Python und ich versuche, dies zu arbeiten. Ich verwende Python 2.7 und PostgreSQL 9.3:Python 2.7 Verbindungszeichenfolge zu PostgreSQL (OOP-Methode)

#! 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) 

Doch ich einen Fehler „Attribute:‚builtin_function_or_method‘Objekt hat kein Attribut‚ausführen‘“ bekommen. Ich denke, ich sollte etwas wie self.execute = etwas in der Datenbank-Klasse, aber ich kann nicht herausfinden, was genau ich dort setzen muss. Irgendwelche Vorschläge?

Antwort

7

Sie vermissen die Klammer am Ende

self.cursor = self.connection.cursor() 

oder

cursor = self.cursor() 

aber nicht beide

+0

Das tat es. Dank bro! – Johann