特殊メソッド

を使ってなんやらかんやら。
といっても__call__を使っただけだけど。

class Foo:
    def __init__(self, n):
        self.x = n
    def __call__(self, n):
        return self.x * n

def Fooo(n):
    return lambda x: x*n

def main():
    foo10 = Foo(10)
    print foo10(5)

    fooo10 = Fooo(10)
    print fooo10(5)

    foo100 = Foo(100)
    print foo100(5)

    fooo100 = Fooo(100)
    print fooo100(5)


if __name__ == "__main__":
    main()

結果

D:\workspace\Python\3-10>python emu.py
50
50
500
500

やっほい。クロージャっぽいものができたよ!
インスタンスを呼び出すと__call__()が呼ばれるもよう。
ふむふむ。