Seite 1 von 1

Mehrere 'Nichtparameter' übergeben

Verfasst: Samstag 19. September 2020, 07:53
von hepythos
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 :?:

Re: Mehrere 'Nichtparameter' übergeben

Verfasst: Samstag 19. September 2020, 08:15
von __deets__
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.

Re: Mehrere 'Nichtparameter' übergeben

Verfasst: Samstag 19. September 2020, 08:30
von snafu
@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.

Re: Mehrere 'Nichtparameter' übergeben

Verfasst: Samstag 19. September 2020, 09:39
von hepythos
snafu hat geschrieben: Samstag 19. September 2020, 08:30 @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

Re: Mehrere 'Nichtparameter' übergeben

Verfasst: Samstag 19. September 2020, 11:16
von __blackjack__
@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.

Re: Mehrere 'Nichtparameter' übergeben

Verfasst: Samstag 19. September 2020, 11:32
von snafu
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.

Re: Mehrere 'Nichtparameter' übergeben

Verfasst: Samstag 19. September 2020, 17:25
von hepythos
__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.
gut möglich, dass es hässlich ist, aber meiner Meinung nach ist wichtiger, dass es klappt.

Re: Mehrere 'Nichtparameter' übergeben

Verfasst: Samstag 19. September 2020, 17:50
von __deets__
Leute, die "Ist mir egal, wichtiger dass es klappt", kauften, kauften auch "Reifen wechseln mit dem Zimmermannshammer fuer Dummies".

Re: Mehrere 'Nichtparameter' übergeben

Verfasst: Samstag 19. September 2020, 19:38
von __blackjack__
@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”.

Re: Mehrere 'Nichtparameter' übergeben

Verfasst: Samstag 19. September 2020, 20:37
von hepythos
__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”.
kann sein. Ich hab jz eh nen ganz anderen Weg

Re: Mehrere 'Nichtparameter' übergeben

Verfasst: Sonntag 20. September 2020, 09:07
von hepythos
__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.
Ich mache es jz eh n bissel anders