macro FAQ
Christos TZOTZIOY Georgiou
tzot at sil-tec.gr
Mon Aug 25 03:50:06 EDT 2003
On 24 Aug 2003 16:34:08 +0200, rumours say that Jacek Generowicz
<jacek.generowicz at cern.ch> might have written:
[See at the end for an interactive session transcript -- a simple copy -
paste]
>> No, wait a minute -- instances, not classes?? Sounds like an abuse of
>> the language to me. What *is* the underlying problem to be solved
>> here?
>
>It started in the Ruby thread: in Ruby classes are "open".
>
>Say you're developing a class (foo), make a gazillion instances of it,
>and play around with them as you are continuing to develop your
>program. Suddenly you realize "Darn, I really need a fubar method!"
>
>In Ruby you do something like:
>
>class foo
> def fubar ...
>
> end
>end
>
>All your existing gazillion instances of foo have just acquired a
>fubar method, and you can happily continue your exploration with all
>the state you built up still intact.
>
>The first thing you might try to do in Python is to add the fubar
>method to the class source code, and re-evaluate it ... only to find
>that your existing instances know nothing about the new method ... so
>you have to go through the hassle of re-creating a gazillion of them,
>before you can continue with what you were doing.
##### code starts here #####
>>> class A(object):
pass
>>> a= A()
>>> a.test()
Traceback (most recent call last):
File "<pyshell#21>", line 1, in ?
a.test()
AttributeError: 'A' object has no attribute 'test'
>>> def test(self):
print id(self)
>>> A.test = test
>>> a.test()
13111376
##### code ends here #####
--
TZOTZIOY, I speak England very best,
Microsoft Security Alert: the Matrix began as open source.
More information about the Python-list
mailing list