Ich kann nicht bekommen, was ich hier falsch mache. Ich bin, die eine Klasse mit dem folgenden Code:Kann Klassenkonstruktor Argument in Python nicht verwenden
import sqlite3 as lite
import sys
import os.path
class database:
def __init__(self,dbfname):
if os.path.isfile(dbfname):
self.con = lite.connect(dbfname)
else:
self.con = self.createDBfile(dbfname)
#Other methods...
Dann, wenn ich versuche,
base = database("mydb.db")
Ich erhalte eine Fehlermeldung eine Instanz der Klasse zu machen sagen, dass es keine „global“ ist variabel genannt dbfname.
Traceback (most recent call last):
File "testdb.py", line 67, in <module>
base = database("mydb.db")
File "testdb.py", line 13, in __init__
self.con = self.createDBfile(dbfname)
File "testdb.py", line 15, in createDBfile
if os.path.isfile(dbfname):
NameError: global name 'dbfname' is not defined
Was wäre die richtige Methode, um die Argumentvariable dbfname zu verwenden?
Ist das buchstäblich Ihr Code ...? Weil es kaputt und/oder schlecht formatiert ist. Bitte überprüfen Sie, was Sie hier eingefügt haben, und vor allem die Einrückung. – deceze
Ich habe eine Duplizierung der Zeile "class database" behoben: Ist das was du meintest? – jokogarcia