今からでも間に合う

技術を学ぶのは今からでも遅くない

VSCodeでpythonのインテリセンスが効かない時の対策

PATHは通っているけど、インテリセンスが表示されなくて結局コードを見に行っている人の助けになれば。

はじめに

azure devopsの環境作ってrest apiをいろいろ試してた時、インテリセンスがまともに表示されなくてとても開発しにくかったです。
こうすればインテリセンスが表示されるようになったので情報として残しておきます。

インテリセンスが表示されていなかった理由

以下のようなコードがあったとします。

credentials = BasicAuthentication('', personal_access_token)
connection = Connection(base_url=organization_url, creds=credentials)
  
# GitClient
gc = connection.clients_v6_0.get_git_client()
gc.

最後のgc.まで入力したとき、またはCtrl + Space押下したときにインテリセンスが表示されることが期待値ですが、ちゃんと表示されません。

↓のようなよくわからん候補が表示されます。

何者?

理由は単純でした。
呼び出しているメソッド側の説明を見てみます。

get_git_clientの説明

これがすべてですね。

(method) get_git_client() -> Any

言われたら(言われなくても)そりゃそうだというオチでした。
pythonの強みでもあり弱点でもある部分でしょうか。

どうする?

原因はわかったので、やることは単純です。
型解決してあげればよいだけでした。

次のようにコードを少し書き換えるだけで万事解決しました。

修正後コード

credentials = BasicAuthentication('', personal_access_token)
connection = Connection(base_url=organization_url, creds=credentials)
  
# GitClient
gc : git.git_client.GitClient = connection.clients_v6_0.get_git_client()

受けたい変数に型を明示します。
結果、ちゃんと候補が出るようになります。

インテリセンスが表示されるようになった

for 文とかでも以下のように書けば大丈夫でした。(もっとスマートな書き方はありそうですが、これしか見つけてません)

for item in get_some_any_list() :
    item : SomeType

おしまい

結局戻りの型は何かを調べるためにひと潜りする必要はあるのですが、その後の変数の利用度合いと比較したら十分型明示のメリットはありますね。
何よりもストレスレスなのがうれしいです。

python入門Top

プライバシーポリシー


d払いポイントGETモール