Более правильный синтаксис будет super().__init__()
для Python3 или super(MyFirstError, self).__init__()
для Python2.
Обычно вы делаете это, когда переопределяете __init__()
в подклассе, и вам также необходимо вызвать конструктор базового класса.В вашем конкретном случае нет никакой пользы от вызова базового конструктора Exception без параметров, так как он не делает ничего сложного, но вы можете передать result
в конструктор Exception, чтобы вам не пришлось хранить self.result
самостоятельнов подклассе.
Пример:
class MyFirstError(Exception):
def __init__(self, result):
super().__init__(result) # will pass result as an argument to the base Exception class
Хотя, то же самое можно сделать гораздо более коротким способом:
class MyFirstError(Exception): pass
Поскольку вы не реализуетеконструктор, базовый метод __init__(result)
будет неявно вызываться для достижения того же результата, что и выше.