On Sun, Aug 3, 2014 at 11:25 PM, Roy Smith <r...@panix.com> wrote: > in which case, I've said, "make Foos just like objects, except for, oh, > never mind, there aren't any differences". But, in reality, the system > bolted on the ability to have user-defined attributes without telling > me. I don't think it's unreasonable to be surprised at that.
I agree that this is slightly surprising. However, imagine if it were the other way: class Foo(object): x = 1 def __init__(self): self.y = 2 These would throw errors, unless you explicitly disable __slots__ processing. When there's two ways to do things and both would be surprising, you pick the one that's going to be less of a surprise, or surprising less often, and accept it. That doesn't mean it's not a problem, but it's better than the alternative. ChrisA -- https://mail.python.org/mailman/listinfo/python-list