例えば、以下のようにクラスAのメソッドの返値にクラスAを指定したい場合、普通に書くとエラーになる。
class A: def create_instance(self) ->A: ...
これはclass Aの定義が完了する前にclass Aを参照しているため。
python 3.7以降はfuture importを使うことで解決できるが、3.6以下では -> 'A'
のようにクラス名の文字列を使うようにすると
PyCharmはクラスを指定したのと同じようにtype checkしてくれるし定義にJumpもできる。
Javaとかに慣れてるとPythonは色々と奇妙なところがあるなぁ。。
参考: