Hi
type(foo) oder str(foo), meine Klassiker, ich kann damit irgendwie nicht (so gut) umgehen dass es da auch Funktionen gibt. Mittlerweile weiß ich ja endlich auch dass es foo.__str__() gibt, aber wie kommt man denn auf __str__()?
es sind halt die speziellen Builtin-Methoden die jede Klasse hat, ich finde diesen __***__ Syntax aber auch furchtbar. Wahrscheinlich will man spätere Namenskonflikte mit user-definierten Methoden vermeiden.
def __init__(self, filename=None):
Ein guter Indikator dafür dass die Objektorientierung im ursprünglichen Sprachdesign noch fehlte, während Ruby mit Smalltalk als Vorbild designt wurde.
Was ich aber unglaublicht gut bei Python finde ist die Tatsache, dass es so viele wirklich unglaublich gute fertige Module für jeden nur erdenklichen Einsatzzweck gibt ohne jeden Pfurz nachinstallieren zu müssen.
Stimmt, die Ruby Community setzt aber auch einige Hoffnung auf eine Integration in Parrot. Wenn Perl6 kommt dann sollte es dann auch möglich sein die CPAN-Module von Ruby aus aufzurufen.
Perl-Module sind bestimmt nicht so einheitlich designt wie bei Python, da fehlte wohl das gute Vorbild ;).
Aber hat Python da quantitativ und qualitativ mehr zu bieten als Perl? Ich zweifle.
Tschau
LanX