Steve Jobless wrote: > Hi, > > I just started learning Python. I went through most of the tutorial at > python.org. But I noticed something weird. I'm not talking about the > __private hack.
Actually this is __ultra_private. For normal privacy, _private is enough !-) > Let's say the class is defined as: > > class MyClass: > def __init__(self): > pass > def func(self): > return 123 > > But from the outside of the class my interpreter let me do: > > x = MyClass() > x.instance_var_not_defined_in_the_class = 456 > > or even: > > x.func = 789 > > After "x.func = 789", the function is totally shot. Obviously. But why would you do such a stupid thing ? OTOH, this let you customize func() for a given object or class. Which can be very helpful sometimes. > Are these bugs or features? Features, definitively. > If they are features, don't they create > problems as the project gets larger? My experience is that with medium/large projects, this feature can actually help to solve a lot of problems in a much more simpler and straightforward way than with most mainstream languages. -- bruno desthuilliers python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in '[EMAIL PROTECTED]'.split('@')])" -- http://mail.python.org/mailman/listinfo/python-list