Vadim Pushtaev <pushtaev...@gmail.com> added the comment:

Here is what I learned:

1) Nothing is wrong with that "tuple.__new__(sys.flags) is not safe" part. 
`__new__` is deleted from `type(sys.flags)`, so parent's `__new__` is called. 
`tuple` is indeed a base class for `type(sys.flags)`.

2) Another part where we recommend to use "sys.flags.__new__()" doesn't make 
much sense, so I choose to delete this advice if there is no `__new__` in a 
class.

3) This second part also may suggest a wrong class to call `__new__` from:


In [1]: from collections import namedtuple

In [2]: class A(namedtuple('A', 'z')):
   ...:     pass
   ...:

In [3]: object.__new__(A)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-3-24eacd9ea752> in <module>()
----> 1 object.__new__(A)

TypeError: object.__new__(A) is not safe, use tuple.__new__()


This should be A.__new__(), not tuple.__new__().

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue34284>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to