> > Basically, the above code is saying that foo.foobar is not the same as > > getattr(foo, 'foobar'). > > > What gives? This breaks my understanding of id(), the is operator, and > > getattr(). > > 4. Both points above follow from the fact that foo.bar is really a > function call that returns a (potentially) new object: in fact what > really happens is something like > > Foo.__dict__['bar'].__get__(foo, Foo). > > So every time foo.bar is executed an object is (or may be) created, > with a new id.
When is it? Why is the 'owner' argument there? Do you ever use '__set__'? -- http://mail.python.org/mailman/listinfo/python-list