New submission from Gabriel Tremblay <[email protected]>:
Types under the typing module used to behave like other python classes
regarding the __name__ attribute before Python 3.7. The behavior seems to have
changed to a non-standard way.
Py3.6
>>> from typing import List
>>> dir(List)
['__abstractmethods__', '__add__', '__args__', '__class__', '__contains__',
'__delattr__', '__delitem__',
'__dir__', '__doc__', '__eq__', '__extra__', '__format__', '__ge__',
'__getattribute__', '__getitem__', '_
_gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__',
'__iter__', '__le__', '__len_
_', '__lt__', '__module__', '__mul__', '__ne__', '__new__', '__next_in_mro__',
'__orig_bases__', '__origin
__', '__parameters__', '__reduce__', '__reduce_ex__', '__repr__',
'__reversed__', '__rmul__', '__setattr__
', '__setitem__', '__sizeof__', '__slots__', '__str__', '__subclasshook__',
'__tree_hash__', '_abc_cache',
'_abc_negative_cache', '_abc_negative_cache_version', '_abc_registry',
'append', 'clear', 'copy', 'count'
, 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
>>> List.__name__
'List'
Py3.7:
>>> from typing import List
>>> dir(List)
['__args__', '__call__', '__class__', '__delattr__', '__dict__', '__dir__',
'__doc__', '__eq__', '__format__', '__ge__', '__getattr__', '__getattribute__',
'__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__',
'__instancecheck__', '__le__', '__lt__', '__module__', '__mro_entries__',
'__ne__', '__new__', '__origin__', '__parameters__', '__reduce__',
'__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__',
'__str__', '__subclasscheck__', '__subclasshook__', '__weakref__', '_inst',
'_name', '_special', 'copy_with']
>>> List.__name__
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.7/typing.py", line 699, in __getattr__
raise AttributeError(attr)
AttributeError: __name__
>>> List._name
'List'
----------
components: Interpreter Core
messages: 323663
nosy: Gabriel Tremblay
priority: normal
severity: normal
status: open
title: __name__ not available for classes in typing module
type: behavior
versions: Python 3.7
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue34422>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com