Ich arbeite an einem einfachen objektorientierten Code in MATLAB. Ich versuche, eine meiner Klassenmethoden ohne Eingabe- oder Ausgabeargumente in ihrer Definition aufzurufen.Warum erhalte ich einen "Too many arguments arguments" -Fehler, wenn ich keinen übergebe?
Funktionsdefinition:
function roll_dice
Funktionsaufruf:
obj.roll_dice;
Wenn dies ausgeführt wird, sagt MATLAB:
??? Error using ==> roll_dice
Too many input arguments.
Error in ==> DiceSet>Diceset.Diceset at 11
obj.roll_dice;
(etc...)
Wer irgendwelche Ideen, was sein könnte verursacht i t? Gibt es geheime automatische Argumente, die mir nicht bewusst sind?
Dh, Roll_dict wird als Methode für ein Objekt aufgerufen, wenn es nicht sein sollte. Versuchen Sie, roll_dice() anstelle von obj.roll_dice(). –
Das könnte funktionieren, aber er hat gesagt, dass roll_dice eine Klassenmethode ist, also vermute ich, dass es für ein bestimmtes Objekt funktionieren soll. – gnovice
Sie hatten Recht, aber jetzt habe ich ein anderes Problem. Ich komme aus Sprachen wie Java und PHP, wo es ziemlich einfach ist, Klassen zu verwenden. Was ist äquivalent zu self.roll_dice oder this.roll_dice? – farr