Seite 1 von 2

Fehlermeldung

Verfasst: Mittwoch 30. November 2011, 19:25
von Goswin
Siehe und staune :shock: :

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:

Code: Alles auswählen

pivot = self._alg.pivot(self, system=self._sys)
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
:D :D :D Fehler gefunden :D :D :D ...
... 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 :wink: .

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 :)