Yes, that's what I mean. Probably retval or whatever people prefer would be adequate, with a special rule if that name is taken.
I think btw. that using StructSequence(somename=sometype, ..., ) that does a dict lookup is quite appealing. It returns a class like stat_result, but the function call shows its arguments (see answer to Ronald). Ciao -- Chris On 08.08.19 17:22, Guido van Rossum wrote: > OK, yes, having a convention for naming the anonymous field sounds like > the way to go. But presuming people will want to use it, and probably > know it from the C++ API, why not name it 'return_value' or 'result' or > 'retval' or something like that? > > On Thu, Aug 8, 2019 at 1:43 AM Christian Tismer <tis...@stackless.com > <mailto:tis...@stackless.com>> wrote: > > Hi Guido, > > If a C++ function already has a return value, plus some primitive > pointer variables that need to be moved into the result in Python, > then we have the case with a first, single unnamed field. > Only one such field can exist. > > I'm not sure if that case exists in the ~25000 Qt5 functions, but in > that case, I think to give that single field the name "unnamed" > or maybe better "result". > > Thank you very much for pointing me to that example! > > Cheers -- Chris > > > On 08.08.19 06:41, Guido van Rossum wrote: > > Alas, we didn't think of struct sequences when we designed PEP 484. It > > seems they are a hybrid of Tuple and NamedTuple; both of these are > > currently special-cased in mypy in ways that cannot easily be > combined. > > > > Do you really need anonymous fields? > > > > I see an example in typeshed/stdlib/3/os/__init__.pyi (in > > github.com/python/typeshed <http://github.com/python/typeshed> > <http://github.com/python/typeshed>), for > > stat_result. It defines names for all the fields, plus a __getitem__() > > method that indicates that indexing returns an int. This doesn't > help if > > anonymous fields could have different types, not does it teach the > type > > checker about the number of anonymous fields. > > > > --Guido > > > > On Wed, Aug 7, 2019 at 1:51 AM Christian Tismer > <tis...@stackless.com <mailto:tis...@stackless.com> > > <mailto:tis...@stackless.com <mailto:tis...@stackless.com>>> wrote: > > > > Hi all, > > > > Ok, I am about to implement generation of such structures > > automatically using the struct sequence concept. > > > > > > One more question: > > ------------------ > > > > Struct sequences are not yet members of the typing types. > > I would like to add that, because a major use case is also to > > show nice .pyi files with all the functions and types. > > > > * namedtuple has made the transition to NamedTuple > > > > * What would I need to do that for StructSequence as well? > > > > Things get also a bit more complicated since struct sequence > > objects can contain unnamed fields. > > > > Any advice would be appreciated, I am no typing expert (yet :-) > > > > cheers -- Chris > > > > > > On 30.07.19 17:10, Guido van Rossum wrote: > > > I think I have to agree with Petr. Define explicit type names. > > > > > > On Tue, Jul 30, 2019 at 2:45 AM Paul Moore > <p.f.mo...@gmail.com <mailto:p.f.mo...@gmail.com> > > <mailto:p.f.mo...@gmail.com <mailto:p.f.mo...@gmail.com>> > > > <mailto:p.f.mo...@gmail.com <mailto:p.f.mo...@gmail.com> > <mailto:p.f.mo...@gmail.com <mailto:p.f.mo...@gmail.com>>>> wrote: > > > > > > On Tue, 30 Jul 2019 at 09:33, Christian Tismer > > <tis...@stackless.com <mailto:tis...@stackless.com> > <mailto:tis...@stackless.com <mailto:tis...@stackless.com>> > > > <mailto:tis...@stackless.com > <mailto:tis...@stackless.com> <mailto:tis...@stackless.com > <mailto:tis...@stackless.com>>>> > > wrote: > > > > >>> typing.NamedTuple("__f", x=int, y=int) > > > > <class '__main__.__f'> > > > > >>> typing.NamedTuple("__f", x=int, y=int) is > > typing.NamedTuple("__f", > > > > x=int, y=int) > > > > False > > > > > > This appears to go right back to collections.namedtuple: > > > > > > >>> from collections import namedtuple > > > >>> n1 = namedtuple('f', ['a', 'b', 'c']) > > > >>> n2 = namedtuple('f', ['a', 'b', 'c']) > > > >>> n1 is n2 > > > False > > > > > > I found that surprising, as I expected the named tuple > type to be > > > cached based on the declared name 'f'. But it's been > that way > > forever > > > so obviously my intuition here is wrong. But maybe it > would be > > useful > > > for this case if there *was* a way to base named tuple > > identity off > > > the name/fields? It could be as simple as caching the > results: > > > > > > >>> from functools import lru_cache > > > >>> cached_namedtuple = lru_cache(None)(namedtuple) > > > >>> n1 = cached_namedtuple('f', ('a', 'b', 'c')) # A > tuple rather > > > than a list of field names, as lists aren't hashable > > > >>> n2 = cached_namedtuple('f', ('a', 'b', 'c')) > > > >>> n1 is n2 > > > True > > > > > > Paul > > > > > > > > > > > > -- > > > --Guido van Rossum (python.org/~guido > <http://python.org/~guido> <http://python.org/~guido> > > <http://python.org/~guido>) > > > /Pronouns: he/him/his //(why is my pronoun here?)/ > > > > > > > <http://feministing.com/2015/02/03/how-using-they-as-a-singular-pronoun-can-change-the-world/> > > > > > > _______________________________________________ > > > Python-Dev mailing list -- python-dev@python.org > <mailto:python-dev@python.org> > > <mailto:python-dev@python.org <mailto:python-dev@python.org>> > > > To unsubscribe send an email to python-dev-le...@python.org > <mailto:python-dev-le...@python.org> > > <mailto:python-dev-le...@python.org > <mailto:python-dev-le...@python.org>> > > > https://mail.python.org/mailman3/lists/python-dev.python.org/ > > > Message archived at > > > > https://mail.python.org/archives/list/python-dev@python.org/message/GIFRTFWPEGKZ33PTW63YXKGXHHAQJ35I/ > > > > > > > > > -- > > Christian Tismer :^) tis...@stackless.com > <mailto:tis...@stackless.com> > > <mailto:tis...@stackless.com <mailto:tis...@stackless.com>> > > Software Consulting : http://www.stackless.com/ > > Karl-Liebknecht-Str. 121 : https://github.com/PySide > > 14482 Potsdam : GPG key -> 0xFB7BEE0E > > phone +49 173 24 18 776 fax +49 (30) 700143-0023 > > > > > > > > -- > > --Guido van Rossum (python.org/~guido <http://python.org/~guido> > <http://python.org/~guido>) > > /Pronouns: he/him/his //(why is my pronoun here?)/ > > > > <http://feministing.com/2015/02/03/how-using-they-as-a-singular-pronoun-can-change-the-world/> > > > > _______________________________________________ > > Python-Dev mailing list -- python-dev@python.org > <mailto:python-dev@python.org> > > To unsubscribe send an email to python-dev-le...@python.org > <mailto:python-dev-le...@python.org> > > https://mail.python.org/mailman3/lists/python-dev.python.org/ > > Message archived at > > https://mail.python.org/archives/list/python-dev@python.org/message/QZ44KHLLNL54ZCHEAQ5WBWCOV7AU2HGW/ > > > > > -- > Christian Tismer :^) tis...@stackless.com > <mailto:tis...@stackless.com> > Software Consulting : http://www.stackless.com/ > Karl-Liebknecht-Str. 121 : https://github.com/PySide > 14482 Potsdam : GPG key -> 0xFB7BEE0E > phone +49 173 24 18 776 fax +49 (30) 700143-0023 > > > > -- > --Guido van Rossum (python.org/~guido <http://python.org/~guido>) > /Pronouns: he/him/his //(why is my pronoun here?)/ > <http://feministing.com/2015/02/03/how-using-they-as-a-singular-pronoun-can-change-the-world/> > > _______________________________________________ > Python-Dev mailing list -- python-dev@python.org > To unsubscribe send an email to python-dev-le...@python.org > https://mail.python.org/mailman3/lists/python-dev.python.org/ > Message archived at > https://mail.python.org/archives/list/python-dev@python.org/message/D3LTF3V2IZLOY5CV4RXMCKO52BXBJZD6/ > -- Christian Tismer :^) tis...@stackless.com Software Consulting : http://www.stackless.com/ Karl-Liebknecht-Str. 121 : https://github.com/PySide 14482 Potsdam : GPG key -> 0xFB7BEE0E phone +49 173 24 18 776 fax +49 (30) 700143-0023 _______________________________________________ Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-le...@python.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/YTQZM5BCMG4IDXUE7YZL3M7BDSQLOC2Z/