Python 3.x опора (опция) Функция аннотации:Как аннотировать генератор в python3?
def add_ints(x:int, y:int) -> int :
return x+y
я иногда сталкивается с проблемами о том, как представлять данный «тип» могут быть представлены, и на этот раз, у меня есть функция, которая возвращает генератор :
def myfunc(x: [int]) -> "generator that returns ints":
# ^~~~~~~~~~~~~~~~~~~~~~~~~~
return (n for n in x if n%2 == 0)
Как следует аннотировать возвращаемое значение? Есть ли ссылка, с которой я могу справиться?
В частности, что вы пытаетесь сделать, добавив эту аннотацию, Python, кажется, ничего не требует, кроме того, что он является допустимым выражением и не использует его внутренне. Там, похоже, нет рекомендаций или стандартов, поэтому я бы просто сделал все, что было бы проще для вашего дела. – KSab
@KSab Спасибо за комментарий. Знание отсутствия рекомендаций - хорошее начало для меня ... Хотя python не использует аннотации внутри, недействительные выражения пойманы, поэтому я не могу просто «-> generator (int)», не делая его строкой. – Yosh
Я предполагаю, что вы можете использовать types.GeneratorType (см. Https://docs.python.org/2/library/types.html), но вы не можете указать, что это генератор 'int' (генераторы Python могут возвратите несколько типов в любом случае). Если вы просто делаете это для своей собственной проверки типов, я не вижу причин не использовать строковый идентификатор или, может быть, глобальную переменную. – KSab