Method Dispatch ohne eval?
Verfasst: Montag 22. März 2010, 09:22
Ich habe angefangen "Metaprogramming in Ruby" zu lesen und habe überlegt, wie man den Method-Dispatch in Python realisieren kann:
Das funktioniert so, benutzt aber eval. Gibt es eine andere (bessere) Möglichkeit indirekt eine Methode aufzurufen?
Code: Alles auswählen
>>> class Foo:
def test_foo ():
return "Testing Foo..."
def test_bar ():
return "Testing Bar..."
def foo ():
return "Foo..."
>>> f = Foo
>>> [eval('f.' + m)() for m in dir(f) if m.startswith('test')]
['Testing Bar...', 'Testing Foo...']