Zmieniłbym stwierdzenie, które sprawdza, czy połączenie jest otwarte, aby zarówno sprawdzić, czy conn jest brak, jak i czy połączenie jest otwarte. A ponieważ zawsze wykonujesz setValue
funkcja, którą polecam wywołać connect wewnątrz __init__
funkcja.
class Sample:
conn = None
def __init__(self):
self.connect()
self.value = self.setValue()
self.close()
def connect(self):
self.conn = MySQLdb.connect(...)
def close(self):
if self.conn:
self.conn.close()
def setValue(self):
if not self.conn and not self.conn.open:
self.connect()
cursor = self.conn.cursor()
Pamiętaj też, że w przypadku Pythonowego łącznika MySQL musisz wywołać zatwierdzenie po wykonaniu instrukcji INSERT lub UPDATE.
cur = self.conn.cursor()
cur.execute("...")
self.conn.commit()