Methode in einer Klasse braucht self
Hallo ihr Administratoren,
ich bin gerade dabei, Python zu lernen. Dabei habe ich ein Modul, was 2 Klassen beinhaltet. Einmal die Klasse mit den Querys und einmal die Klasse, die die Querys ausführt. In einem YouTube Tutorial habe ich gelernt, dass man bei allen Methoden in einer Klasse immer als ersten Parameter self angeben muss, die anderen kann man beliebig setzen. Wenn man dann diese Methode der Klasse aufruft, muss man self einfach überspringen.
Hier erstmal der Quellcode:
Nun habe ich im letzten Quellcodeabschnitt als ersten Parameter None eingegeben. Nehme ich diesen raus, bekomme ich einen Fehler, dass ein Parameter fehlt. Das verstehe ich aber nicht, weil ich ja gelernt habe, dass man self überspringen kann...
Kann mir das mal bitte jemand erklären?
ich bin gerade dabei, Python zu lernen. Dabei habe ich ein Modul, was 2 Klassen beinhaltet. Einmal die Klasse mit den Querys und einmal die Klasse, die die Querys ausführt. In einem YouTube Tutorial habe ich gelernt, dass man bei allen Methoden in einer Klasse immer als ersten Parameter self angeben muss, die anderen kann man beliebig setzen. Wenn man dann diese Methode der Klasse aufruft, muss man self einfach überspringen.
Hier erstmal der Quellcode:
class sql_login_querys():
def query_getpasswordbyusername(username):
if username != "":
return "SELECT * FROM 'users' WHERE 'username'='" + username + "'"
else:
return "username is empty"
class sql_login_commander(sql_login_querys):
def getpasswordbyusername(self, username):
return sql_login_querys.query_getpasswordbyusername(username)
import databasecommander
def getuserdatafromdatabase(username, password):
query = databasecommander.sql_login_commander.getpasswordbyusername(None, username)
print(query)
username = input("Wie heißen Sie? ")
getuserdatafromdatabase(username, "Test123")
Nun habe ich im letzten Quellcodeabschnitt als ersten Parameter None eingegeben. Nehme ich diesen raus, bekomme ich einen Fehler, dass ein Parameter fehlt. Das verstehe ich aber nicht, weil ich ja gelernt habe, dass man self überspringen kann...
Kann mir das mal bitte jemand erklären?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 360180
Url: https://administrator.de/contentid/360180
Ausgedruckt am: 22.11.2024 um 04:11 Uhr
1 Kommentar
Du hast hier eine Klasse die du erst instanzieren musst bevor du sie nutzt, deine Methoden sind nicht static also fehlen hier bei sql_login_commander am Ende die Klammern.
Videos halte ich zum vernünftigen lernen ungeeignet, lesen ist da immer noch das Mittel der Wahl um es richtig zu verstehen und um wichtige Details nicht zu übersehen.
Lese dazu bitte mal folgende Seite
https://julien.danjou.info/blog/2013/guide-python-static-class-abstract- ...
Das erläutert das ganze eigentlich sehr verständlich.
Gruß @135111
Videos halte ich zum vernünftigen lernen ungeeignet, lesen ist da immer noch das Mittel der Wahl um es richtig zu verstehen und um wichtige Details nicht zu übersehen.
Lese dazu bitte mal folgende Seite
https://julien.danjou.info/blog/2013/guide-python-static-class-abstract- ...
Das erläutert das ganze eigentlich sehr verständlich.
Gruß @135111