Hallo,
ich habe ein etwas spezielles Problem.
Es hat zwar was mit einem Modul zu tun, gehört aber eigentlich zur Pythonsyntax.
Aber zu Sache: Man kann ja Schlüsselwörter an eine Funktion übergeben (so wie 'self' an eine Ojektfunktion) ich arbeite mit Panda3D und muss an einer Stelle neben 'self' auch noch 'task' als diese Schlüsselwörter übergeben. Allerdings wir das zweite immer als ganz normaler Parameter erkannt. Also wenn 'self' vorne steht, kommt ne Fehlermeldung, dass 'task' fehlt und andersrum. Wie kann ich Python klar machen, das beide Schlüsselwörter sind
Mehrere 'Nichtparameter' übergeben
Self kann, muss man aber eigentlich nicht übergeben. Man ruft einfach
objekt.methode(argument)
auf, und das sorgt dann dafür.
Bitte zeig uns also deinen Code, und deine vollständige Fehlermeldung. Und ggf die Dokumentation für Panda3D, die dafür relevant ist.
objekt.methode(argument)
auf, und das sorgt dann dafür.
Bitte zeig uns also deinen Code, und deine vollständige Fehlermeldung. Und ggf die Dokumentation für Panda3D, die dafür relevant ist.
@hepythos: Prinzipiell kann man das erste Argument einer Methode so benennen wie man will. Dass es "self" heißt, hat sich einfach eingebürgert. Daher ist methode(task, x, y, z) ebenso möglich, falls du das meinst.
Danke. Ich glaube, dass löst mein Problem
- __blackjack__
- User
- Beiträge: 13117
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@hepythos: Ich glaube nicht, denn das erste Argument einer Methode *nicht* `self` zu nennen ist falsch. Das macht man nicht, denn das ist extrem verwirrend und deutet darauf hin das jemand objektorientierte Programmierung in Python nicht verstanden hat und da etwas sehr schräges versucht.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Richtig, eine Empfehlung sollte das nicht sein. Bloß ein Hinweis darauf, dass die automatische Übergabe des ersten Parameters gewissermaßen "magisch" erfolgt, nicht jedoch der Zugriff auf "self". Es ist also nicht wie z.B. bei "this" in Java gelöst.
gut möglich, dass es hässlich ist, aber meiner Meinung nach ist wichtiger, dass es klappt.__blackjack__ hat geschrieben: ↑Samstag 19. September 2020, 11:16 @hepythos: Ich glaube nicht, denn das erste Argument einer Methode *nicht* `self` zu nennen ist falsch. Das macht man nicht, denn das ist extrem verwirrend und deutet darauf hin das jemand objektorientierte Programmierung in Python nicht verstanden hat und da etwas sehr schräges versucht.
- __blackjack__
- User
- Beiträge: 13117
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@hepythos: Es ist nicht hässlich, es ist schlicht *falsch*. Und nein, nicht alles was ”funktioniert” ist irgendwie schon richtig. Editoren/IDEs mit statischer Analyse markieren das auch mit der Kategorie ”Fehler”, und nicht als ”Warnung” oder ”Konvention”.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
kann sein. Ich hab jz eh nen ganz anderen Weg__blackjack__ hat geschrieben: ↑Samstag 19. September 2020, 19:38 @hepythos: Es ist nicht hässlich, es ist schlicht *falsch*. Und nein, nicht alles was ”funktioniert” ist irgendwie schon richtig. Editoren/IDEs mit statischer Analyse markieren das auch mit der Kategorie ”Fehler”, und nicht als ”Warnung” oder ”Konvention”.
Ich mache es jz eh n bissel anders__deets__ hat geschrieben: ↑Samstag 19. September 2020, 08:15 Self kann, muss man aber eigentlich nicht übergeben. Man ruft einfach
objekt.methode(argument)
auf, und das sorgt dann dafür.
Bitte zeig uns also deinen Code, und deine vollständige Fehlermeldung. Und ggf die Dokumentation für Panda3D, die dafür relevant ist.