Gary123456 hat geschrieben:Immer diese Gerüchte, dass OOP so schwierig sei, stimmen wohl nich. Für mich erscheint das immer noch babyleicht
Es ist nicht schwierig. Allerdings muss man die Ideen und Konzepte dahinter verstehen und korrekt anwenden und das hast du noch nicht.
Der Code ist so nicht korrekt. Als erstes stellt sich die Frage, warum man diese Funktionen überhaupt in einer Klasse bündeln sollte. Im Endeffekt haben sie keine gemeinsamen Daten die sie verwenden.
self ist übrigens das Exemplar (die Instanz) der Klasse mit der die Methode aufgerufen wird. Beim Aufruf selber wird sie nicht angegeben.
Schauen wir uns jetzt mal den Code an.
Code: Alles auswählen
def Listen(self,Pfad):
self.Listen=os.listdir(Pfad)
return self.Listen
Hast du deinen Code eigentlich mal ausprobiert? Anscheinend nicht. Das ist jetzt nämlich ein schönes Beispiel dafür wie man sich selber in den Fuß schießen kann. Innerhalb der Methode
Listen definierst du
Listen neu als Liste. Damit ist die Methode Listen nicht mehr erreichbar.
Code: Alles auswählen
folder = Ordner()
print(folder.Listen('.'))
print(folder.Listen('.'))
Beim zweiten Aufruf bekommst du einen Fehler.
Der Grund sollte klar sein. Wenn du mal vor jedem
print noch eine Zeile mit
einfügst, dann siehst du es auch. Zuerst ist folder.Listen
<type 'instancemethod'>, danach
<type 'list'>.
Zum Schluss darf dann auch der Hinweis auf
PEP-8, den Style Guide for Python Code, nicht fehlen. Es steht dir selbstverständlich frei zu schreiben wie du möchtest, aber wenn du Code mit anderen austauschst - oder anderen zum Drüberschauen vorlegst - dann hat es deutliche Vorteile wenn du dich an den allgemein verwendeten Stil hältst.