• [^] # Re: Python vs Ruby

    Posté par . En réponse au journal Choisir un framework web.... Évalué à 3.

    Ajouter dynamiquement une méthode à un seul objet :
    # contexte de test
    class C: pass
    o = C()
    # ajout
    makemethod = lambda obj, func: lambda *a, **k: func(obj, *a, **k)
    o.test = makemethod(o, lambda self, arg: 'self=%s, arg=%s' % (self, arg))
    # test
    o.test(42)

    => 'self=<__main__.C instance at 0xa1be8ac>, arg=42'

    Tu vas me dire que c'est compliqué, je te répondrai que ça ne sert quasiment jamais, alors ce n'est vraiment pas compliqué en comparaison de ce que tu essayes de faire.

    Classe anonyme en Python : type("", (), {})