En Sat, 29 Aug 2009 04:34:48 -0300, zaur <szp...@gmail.com> escribió:
On 29 авг, 08:37, "Gabriel Genellina" <gagsl-...@yahoo.com.ar> wrote:
En Fri, 28 Aug 2009 15:25:55 -0300, zaur <szp...@gmail.com> escribió:
> On 28 авг, 16:07, Bruno Desthuilliers <bruno.
> 42.desthuilli...@websiteburo.invalid> wrote:
>> zaur a écrit :
>> > Ok. Here is a use case: object initialization.
>> Err... Looks like you really should read the FineManual(tm) -
>> specifically, the parts on the __init__ method.
> What are you doing if 1) classes Person and Address imported from
> foreign module 2) __init__ method is not defined as you want?
Welcome to dynamic languages! It doesn't matter *where* the class was
defined. You may add new attributes to the instance (even methods to
the class) at any time. [...4 examples...]
I know about these ways of object initializing. What I said is about
using object's dictionary as nested scope in code block. Object
initialization is just one use case.
So we say about different things.
Well, you asked how to proceed in certain cases and I showed several ways
it can be done right now, without requiring a new scope. You'll have to
think of another use case.
Attribute lookup is explicit in Python, and that's a very good thing. If
you follow the python-ideas thread posted earlier, you'll see the kind of
problems an implicit attribute lookup would cause. The "with" statement is
necesary (and a good thing) in Pascal, but not in Python.
Zope2 departs from this explicitness: it has a <dtml-with> construct
(similar to what you propose), and I hate it profoundly every time I have
to edit a DTML file - I can never tell *where* an attribute comes from.
Another related "feature" is acquisition, a stack of namespaces where
objects "inherit" attributes from their containers. Same thing, a complete
waste of time every time I have to track a bug.
Unless you can find a very compeling use case, I don't think this feature
will become part of the language anytime soon...
--
Gabriel Genellina
--
http://mail.python.org/mailman/listinfo/python-list