Ich habe nie die Ausnahmebehandlung in Python (oder irgendeine andere Sprache um ehrlich zu sein) verstanden. Ich habe mit benutzerdefinierten Ausnahmen experimentiert und das folgende Verhalten gefunden.Implementierung von `Exception .__ str __()` in Python
class MyError(Exception):
def __init__(self, anything):
pass
me = MyError("iiiiii")
print(me)
Ausgang:
iiiiii
Ich gehe davon aus, dass print()
Anrufe Exception.__str__()
. Wie kann die Basisklasse Exception
iiiiii
drucken? Die Zeichenfolge "iiiiii"
wurde über das Argument anything
an den Konstruktor MyError
übergeben, aber anything
wird nirgendwo in MyError
gespeichert.
Darüber hinaus ruft der Konstruktor MyError
seinen Konstruktor der Superklasse (Exceptions) nicht auf. Also, wie hat print(me)
Drucken iiiiii
?
Welche Version von Python? Dies kann in Python 2.7 nicht reproduziert werden. –
Leider vergessen zu erwähnen, Python 3.5.1. – Ray