I'm a python addict !
Bruno Desthuilliers
bruno.42.desthuilliers at websiteburo.invalid
Tue Jan 27 04:21:36 EST 2009
Paul McGuire a écrit :
> On Jan 26, 10:54 am, "J. Cliff Dyer" <j... at sdf.lonestar.org> wrote:
>> On Fri, 2009-01-23 at 20:25 -0800, Paul McGuire wrote:
>>> Want to change the type/behavior of an object from class A to class
>>> B? How about this:
>>> aobj = A()
>>> aobj.__class__ = B
>>> Try *that* in as simple-looking C++ or Java!
>> Wow. That looks very powerful and fun. But scary. Any thoughts on how
>> you would use that in a way that wouldn't unleash sulphurous code
>> smells?
>>
>
> This technique is perfect for implementing the GoF State pattern.
Except when it is not !-)
I tried twice to use this trick in "real life" code, and in both cases,
it ended up being much more complicated than implementing the state
pattern the canonical way. Not to say that it's hopeless - just that
there's the usual difference between theory and practice.
More information about the Python-list
mailing list