Monday, December 22, 2008

Polimorfizm w Pythonie

Ostatnio programując w C++ walczyłem z polimorficznymi wyjątkami. Sytuacja zgrała się z trafieniem po drodze na lekturę Thinking in Python, gdzie zauważyłem bardzo ciekawe podejście autora, który czasami pisze "w C++ musiałeś to i to a w Pythonie - po prostu działa". Szalenie mi to podejście odpowiada :) Tak więc w myśl tej idei postanowiłem sprawdzić jak ma się polimorfizm wyjątków w Pythonie i czy dużo więcej się namęcze. Po raz kolejny :) punkt za prostotę dla Pythona - po prostu działa :]
class MyException(Exception):
    def __init__(self, message):
        self.message = message
    def __str__(self):
        return repr(self.message)

class MySocketException(MyException):
    pass

class MyOtherException(MyException):
    pass

def f():
    raise MyOtherException("Moj wyjatek: Wystapil straszny blad !")

if __name__ == '__main__':
try:
    f()
except MyException, e:
    print e



Czy to nie jest piękne :)

No comments: