Nick Coghlan <ncogh...@gmail.com> added the comment:

Looking at the code in 
https://github.com/python/cpython/blob/e42b705188271da108de42b55d9344642170aa2b/Python/sysmodule.c#L2360,
 I think the underlying problem here is that the code to make these 
PyStructSequence subclasses uninstantiable isn't really right - rather than 
clearing those fields in the subclass (which still allows dynamic method lookup 
to fall back to the parent class, even though fast C level dispatch fails), it 
would be more consistent and reliable to replace them with implementations that 
always raise a TypeError with a suitable message.

(An alternative may be to implement the same behaviour as the builtin singleton 
types used for None and Ellipsis: replace __new__ with an implementation that 
always returns the original singleton instance. However, there isn't a 
compelling use case, so raising a descriptive exception along the lines of what 
ppperry suggests seems most appropriate)

----------
priority: normal -> low

_______________________________________
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