Seite 1 von 2
Fehlermeldung
Verfasst: Mittwoch 30. November 2011, 19:25
von Goswin
Siehe und staune

:
Code: Alles auswählen
Traceback (most recent call last):
(...)
File "/home/goswins_account/pyplatz/eckensuche.py", line 118, in iteriere
pivot = self._alg.pivot(system=self._sys)
TypeError: pivot() takes exactly 2 arguments (1 given)
Hier gibt es eigentlich nichts mehr zu sagen, sondern nur über Pythons Fehlermeldungen zu stöhnen.
Der Traceback oben bestätigt auf eine Weise, die klarer nicht sein kann, dass genau 2_Argumente und nicht etwa eines an pivot() übergeben wurden.
Re: Fehlermeldung
Verfasst: Mittwoch 30. November 2011, 19:43
von pillmuncher
Du meinst also, eine bessere Meldung sollte so aussehen:
Code: Alles auswählen
Traceback (most recent call last):
(...)
File "/home/goswins_account/pyplatz/eckensuche.py", line 118, in iteriere
pivot = self._alg.pivot(system=self._sys)
TypeError: Code kaputt!!!
[edit]
Jetzt hab ich es auch gesehen. Nein, du liegst falsch, und Python hat recht. Du hast nur 1 Argument übergeben.
[/edit]
Re: Fehlermeldung
Verfasst: Mittwoch 30. November 2011, 19:45
von Hyperion
Goswin hat geschrieben:
Der Traceback oben bestätigt auf eine Weise, die klarer nicht sein kann, dass genau 2_Argumente und nicht etwa eines an pivot() übergeben wurden.
Also ich sehe das nicht - wo genau siehst Du das?
Re: Fehlermeldung
Verfasst: Mittwoch 30. November 2011, 20:40
von Dav1d
Hast du zufällig `self` vergessen mitzuzählen?
Re: Fehlermeldung
Verfasst: Mittwoch 30. November 2011, 20:56
von anogayales
Vielleicht sowas:
Grüße,
anogayales
Re: Fehlermeldung
Verfasst: Mittwoch 30. November 2011, 21:14
von Hyperion
@anogayales: Das ist doch alles reine Spekulation! Goswin muss eben mal die Signatur der `pivot`-Funktion hier posten - allea andere bringt nichts.
Re: Fehlermeldung
Verfasst: Donnerstag 1. Dezember 2011, 04:15
von Leonidas
Dav1d hat geschrieben:Hast du zufällig `self` vergessen mitzuzählen?
Das halte ich für unwarscheinlich, denn `self` wird implizit übergeben. Das sieht eher aus als hätte Goswin nur einen Parameter an eine Funktion übergeben die zwei erwartet -- exakt was die Fehlermeldung sagt.
Hyperion hat schon recht, ohne die Signatur können wir nur rumraten.
Re: Fehlermeldung
Verfasst: Donnerstag 1. Dezember 2011, 09:39
von Goswin

Fehler gefunden

...
... aber erst, nachdem ich eine Nacht durchgeschlafen und für euch die unten folgende Zusatzinformation niedergeschrieben hatte, anhand von welcher man in der Tat den Fehler finden kann. Da es immer einige Knoblernaturen unter euch gibt, bin ich gespannt, ob ihn jemand anderes auch findet (meine Auflösung -falls überhaupt erforderlich- demnächst).
Die Fehlermeldung war
Code: Alles auswählen
Traceback (most recent call last):
(...)
File "/home/goswins_account/pyplatz/eckensuche.py", line 118, in iteriere
pivot = self._alg.pivot(system=self._sys)
TypeError: pivot() takes exactly 2 arguments (1 given)
Die Signatur der Methode "pivot" ist
Code: Alles auswählen
class DualSimplex:
(...)
def pivot(self,system):
(...)
Anmerkungen:
(1) Ich gehe natürlich davon aus, dass das erste übergebene Argument "self._alg" (==DualSimplex) ist und das zweite Argument "self._sys".
(2) Ich habe noch einmal bestätigt, dass ich wirklich DIESE Methode (und keine gleichnamige im __mro__) aufrufe, indem ich ihren Namen auf "def xyzzy(self,system)" änderte. Die Fehlermeldung bleibt in gleicher Form bestehen.
(3) Wenn ich den Methodenaufruf auf "self._alg.pivot(self._sys)" anstelle von "self._alg.pivot(system=self._sys)" ändere, bleibt die Fehlermeldung ebenfalls in gleicher Form bestehen.
(4) Dass der Fehler ein "TypeError" sein soll, halte ich auch für sehr seltsam.
(5) Meine Klasse DualSimplex erbt die __init__-Methode von "object" (was bei mir nur selten vorkommt).
Re: Fehlermeldung
Verfasst: Donnerstag 1. Dezember 2011, 09:52
von BlackJack
Steht vielleicht irgend wo ein ``self._alg = DualSimplex``, also dass Du die Klasse statt eines Exemplars an dieses Attribut bindest?
Re: Fehlermeldung
Verfasst: Donnerstag 1. Dezember 2011, 10:12
von deets
Mein Gott, was fuer ein Gewese darum, dass du einen daemlichen Fehler gemacht hast, und vergessen nen Satz Klammern hinter DualSimplex zu packen. Passiert ja jedem mal, aber das jetzt hier so zu verkaufen als ob es die groesste Entdeckung seit geschnitten Brot ist...
Re: Fehlermeldung
Verfasst: Donnerstag 1. Dezember 2011, 10:22
von Goswin
@Blackjack: Richtig.
Auch Leonidas hatte in seinem Beitrag das Problem im Ansatz schon gelöst; nur ich habe nicht genau hingelesen, sonst hätte ich bemerkt, dass er "Funktion" sagt anstelle von "Methode".
@deets: Bitte nimm nichts für ungut! Der Forumsbeitrag war ja schon geschrieben; das "Lösung gefunden" habe ich nachträglich eingefügt...
Re: Fehlermeldung
Verfasst: Donnerstag 1. Dezember 2011, 13:13
von Hyperion
@Goswin: Hättest Du uns die Signatur sofort gezeigt, dann wäre die Auflösung ja auch schnell gekommen! Und letztlich hätte es bei Dir schon klingeln müssen, wenn das implizite Übergeben von "self" augenscheinlich scheitert. Zumindest hätte ich dann schon mal das Wort "Methode" erwähnt - aufgrund des Trcacebacks kann man das ja nun mal schwer ablesen...
Re: Fehlermeldung
Verfasst: Donnerstag 1. Dezember 2011, 14:21
von deets
@Goswin
Fehler zu machen ist menschlich. Passiert mir ja auch laufend. Aber die Attituede von "boah, ist Python bloede" obwohl das ganze ein ISO Layer 8 Problem ist - die kannst du dir IMHO sparen.
Re: Fehlermeldung
Verfasst: Mittwoch 14. Dezember 2011, 09:18
von Goswin
@deets: Ich mache *nie* irgendwelche ISO-Layer-8-Fehler. Und dann wäre noch die Regel: Benutze immer Ironie in den Forenbeiträgen, denn Missverständnisse sind absolut ausgeschlossen

.
Re: Fehlermeldung
Verfasst: Mittwoch 14. Dezember 2011, 09:24
von snafu
@deets: Nicht eher OSI...?

Re: Fehlermeldung
Verfasst: Mittwoch 14. Dezember 2011, 11:24
von /me
snafu hat geschrieben:@deets: Nicht eher OSI...?

Letztes Semester hatte ich in einer Klausur zum Thema Netzwerke volle Punktzahl obwohl ich ISO statt OSI geschrieben hatte. Man kann es also wohl durchgehen lassen.

Re: Fehlermeldung
Verfasst: Mittwoch 14. Dezember 2011, 11:31
von snafu
Ach, egal. Hauptsache 3 Buchstaben hingeschrieben.

Re: Fehlermeldung
Verfasst: Mittwoch 14. Dezember 2011, 11:35
von /me
snafu hat geschrieben:Ach, egal. Hauptsache 3 Buchstaben hingeschrieben.

WTF
Re: Fehlermeldung
Verfasst: Mittwoch 14. Dezember 2011, 11:39
von snafu
/me hat geschrieben:snafu hat geschrieben:Ach, egal. Hauptsache 3 Buchstaben hingeschrieben.

WTF
Probier doch genau *das* beim nächsten Mal einfach aus.

Re: Fehlermeldung
Verfasst: Montag 19. Dezember 2011, 10:03
von Lenzer
Danke für den guten Tipp...hat mir auch weitergeholfen
