Mehrere 'Nichtparameter' übergeben

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
hepythos
User
Beiträge: 7
Registriert: Samstag 19. September 2020, 07:20

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 :?:
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

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.
Benutzeravatar
snafu
User
Beiträge: 6744
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

@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.
hepythos
User
Beiträge: 7
Registriert: Samstag 19. September 2020, 07:20

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
Benutzeravatar
__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
Benutzeravatar
snafu
User
Beiträge: 6744
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

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.
hepythos
User
Beiträge: 7
Registriert: Samstag 19. September 2020, 07:20

__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.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Leute, die "Ist mir egal, wichtiger dass es klappt", kauften, kauften auch "Reifen wechseln mit dem Zimmermannshammer fuer Dummies".
Benutzeravatar
__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
hepythos
User
Beiträge: 7
Registriert: Samstag 19. September 2020, 07:20

__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
hepythos
User
Beiträge: 7
Registriert: Samstag 19. September 2020, 07:20

__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
Antworten