オートコンプリートを向上させるために、Python 3タイプ機能を使用しています。
多くの場合、特定のキーを持つキー/値(辞書)を返す関数があります。超簡単な例:
def get_info(name):
name_first_letter = name[0]
return {'my_name': name, 'first_letter': name_first_letter}
この関数に型ヒントを追加して、この関数を使用する他の人に期待することを伝えたいと思います。
私は次のようなことができます:
class NameInfo(object):
def __init__(self, name, first_letter):
self.name = name
self.first_letter = first_letter
次に、関数のシグネチャを次のように変更します。
def get_info(name) -> NameInfo:
しかし、辞書ごとに必要なコードが多すぎます。
その場合のベストプラクティスは何ですか?
コメントでBlckknght、あなたとStanislav Ivanovが指摘したように、 NamedTuple
を使用できます。
from typing import NamedTuple
class NameInfo(NamedTuple):
name: str
first_letter: str
def get_info(name: str) -> NameInfo:
return NameInfo(name=name, first_letter=name[0])
Python 3.8から開始 TypedDict
を使用できます。これは、必要なものにより似ています。
from typing import TypedDict
class NameInfo(TypedDict):
name: str
first_letter: str
def get_info(name: str) -> NameInfo:
return {'name': name, 'first_letter': name[0]}