私は:rtype:
ジェネレーター関数のタイプヒント。返される型は何ですか?
たとえば、文字列を生成する次の関数があるとします。
def read_text_file(fn):
"""
Yields the lines of the text file one by one.
:param fn: Path of text file to read.
:type fn: str
:rtype: ???????????????? <======================= what goes here?
"""
with open(fn, 'rt') as text_file:
for line in text_file:
yield line
戻り値の型は単なる文字列ではなく、文字列の反復可能性のようなものですか?だから私はただ:rtype: str
。適切なヒントは何ですか?
Generator[str, None, None]
またはIterator[str]
ジェネレータに注釈を付けるための一般的なタイプは、 typing
モジュールによって提供されるGenerator[yield_type, send_type, return_type]
です。
def echo_round() -> Generator[int, float, str]:
res = yield
while res:
res = yield round(res)
return 'OK'
または、Iterable[YieldType]
またはIterator[YieldType]
を使用できます。