On Tue, Jul 5, 2016 at 2:31 AM, Steven D'Aprano <steve+comp.lang.pyt...@pearwood.info> wrote: > On Monday 04 July 2016 18:34, Lawrence D’Oliveiro wrote: > >> On Monday, July 4, 2016 at 7:58:07 PM UTC+12, dieter wrote: >>> --> "type(obj)" or "obj.__class__" (there are small differences) >>> give you the type/class of "obj". >> >> When would it not be the same? > > > class X(object): > def __getattribute__(self, name): > if __name__ == '__class__': > return int > return super().__getattribute__(name)
Did you actually test that? py> class X(object): ... def __getattribute__(self, name): ... if __name__ == '__class__': ... return int ... return super().__getattribute__(name) ... py> x = X() py> x.__class__ <class '__main__.X'> Certain attributes like __class__ and __dict__ are special. -- https://mail.python.org/mailman/listinfo/python-list