Seite 1 von 1

static variable

Verfasst: Samstag 30. September 2006, 11:42
von DatenMetzgerX
Hallo

Ist es in Python irgend wie möglich mit Statischen Variabeln zu arbeiten.

Habe ein Modul welches mir die Verbindung zur DB herstellt (sqlite). Mehrere Module greifen auf diese Verbindung zu, will aber nicht das jedes mal eine neue eröffnet wird. Nun wollte ich mit staticmethode eine Methode schreiben welche mri die aktive Instanz zurück gibt. Allerdings weiss ich nicht in welcher Variabel ich die Insanz speichern soll...

am liebsten wäre mir so was

Code: Alles auswählen

class sqlConnection:
    instance = None  #Diese Variabel soll statisch sein
    def __init__(self, db = 'db.s3db'):
        self.conn = sqlite3.connect(db, isolation_level = None)   

        self.cur = self.conn.cursor()
        instance = self
    @staticmethode
    def getInstance():
        if instance == None:
            sqlConnection.__init__()
        return instance
Merci

DM

Verfasst: Samstag 30. September 2006, 12:30
von BlackJack
Das ist ein Klassenattribut also kannst Du über den Klassennamen darauf zugreifen: ``sqlConnection.instance``.

Verfasst: Samstag 30. September 2006, 14:00
von Joghurt
Dein Code müsste so funktionieren...

Verfasst: Samstag 30. September 2006, 14:10
von Y0Gi
Zumindest, wenn das 'e' em Ende des Decorators entfernt wird.

Tipps:
- PEP 8 beachten bzgl. Namen von Klassen, Methoden und Leerzeichen
- Zum Testen auf None ist der Operator 'is' schneller und angebrachter. Alternativ kann man oft auch ein "if not x:" verwenden.