On 7 June 2016 at 20:17, Eric Snow <ericsnowcurren...@gmail.com> wrote: > On Tue, Jun 7, 2016 at 6:20 PM, Ethan Furman <et...@stoneleaf.us> wrote: >> If __definition_order__ is supposed to be immutable as well as read-only >> then we should convert non-tuples to tuples. No point in letting that >> user bug slip through. > > Do you mean if a class explicitly defines __definition_order__? If > so, I'm not clear on how that would work. It could be set to > anything, including None or a value that does not iterate into a > definition order. If someone explicitly set __definition_order__ then > I think it should be used as-is.
I'm guessing Ethan is suggesting defining it as: __definition_order__ = tuple(ns["__definition_order__"]) When the attribute is present in the method body. That restriction would be comparable to what we do with __slots__ today: >>> class C: ... __slots__ = 1 ... Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'int' object is not iterable Cheers, Nick. -- Nick Coghlan | ncogh...@gmail.com | Brisbane, Australia _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com