ast wrote: > Hi, > > I know two Python's objects which have an intrinsic > name, classes and functions. > > def f(): > pass > >>>> f.__name__ > 'f' >>>> g = f >>>> g.__name__ > 'f' > > class Test: > pass > >>>> Test.__name__ > 'Test' >>>> Test2 = Test >>>> Test2.__name__ > 'Test' > > Are there others objects with a __name__ attribute > and what is it used for ? > > Regards
It was used for the object's repr(): $ python Python 2.7.6 (default, Oct 26 2016, 20:30:19) [GCC 4.8.4] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> def f(): pass ... >>> f.__name__ = "spanish inquisition" >>> f <function spanish inquisition at 0x7faad26ed7d0> But this has changed: $ python3 Python 3.4.3 (default, Nov 17 2016, 01:08:31) [GCC 4.8.4] on linux Type "help", "copyright", "credits" or "license" for more information. >>> def f(): pass ... >>> f.__name__ = "spanish inquisition" >>> f <function f at 0x7f302fc20bf8> >>> f.__qualname__ = "spanish inquisition" >>> f <function spanish inquisition at 0x7f302fc20bf8> You should be aware that the module name is used to detect the main module: if __name__ == "__main__": print("this is run as a script") -- https://mail.python.org/mailman/listinfo/python-list