Alexander Kapps wrote:
Bruno Desthuilliers wrote:
Alexander Kapps a écrit :
(snip)
While I personally don't agree with this proposal (but I understand
why some people might want it), I can see a reason.
When disallowing direct attribute creation, those typos that seem to
catch newcommers won't happen anymore. What I mean is this:
class Foo(object):
def __init__(self):
self.somearg = 0
f = Foo()
f.soemarg = 42
---^ There, typo, but still working
It's something like a custom __setattr__ that errors out when trying
to assign to an attribute that doesn't exists,
Chicken and egg problem, really : f.__dict__['somearg'] doesn't
exists until "self.somearg = 0" is executed.
The "problem" is that Python's methods are only thin wrapper around
functions (cf http://wiki.python.org/moin/FromFunctionToMethod) so
there's no difference between "self.somearg = 0" in Foo.__init__ and
"f.somearg = 42".
IOW, there's no way to implement this proposal without completely
changing Python's object model.
I must be missing something. Can you please explain why the whole object
model would need to change?
UHHM! Forget it. This of course doesn't work with setattr too. My
stupidness. :-(
--
http://mail.python.org/mailman/listinfo/python-list