static variable

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
DatenMetzgerX
User
Beiträge: 398
Registriert: Freitag 28. April 2006, 06:28
Wohnort: Zürich Seebach (CH)

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
BlackJack

Das ist ein Klassenattribut also kannst Du über den Klassennamen darauf zugreifen: ``sqlConnection.instance``.
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Dein Code müsste so funktionieren...
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

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.
Antworten