研究メモ
Pythonで型を考慮した開発支援
動機
動的型付け言語での開発支援をやりたい
Pythonでの知見が自分の中に多い
Pythonなんも /icons/わからん.icon
既存の実装
Type Hints
Python3.5で実装された、Type HintsをPythonコード中に埋め込める記法
PEP484に従ったコードの静的型検査を可能にするツール
研究のアイデア
Type Hintsのついていない既存のコードに対しType Hintsとして型の候補を提示する
code:python
def test(n: int):
if n < 0:
return "negative"
elif 0 < n:
return "positive"
上記の関数testではstrとNoneTypeが候補となる
そもそもelse句がないのはアレなのでは?
関数の利用状況から引数の型を推論しType Hintsを付加する
code:python
a = 5
test(a)
test(-1)
# 与えられた実引数より、testの仮引数の型はintと推論される
先行研究
Pythonにおいてアクセスされる属性と名前から型推論