Enum x Dictionaryのインテリセンスが効かない?【Python】


おやまあ

なんということでしょう?

インテリセンスが効かないではありませんか。
これは一大事です。サボれません。

なに書いてるの?

charactersという列挙型を用意しています。
値はモンキーのジョージ、ネズミのミッキー、キャットのトムです。

この列挙型を使って、倉庫にストックされているキャラクターどもの台帳を作ろうとしています。
その台帳が、GarageStockDictionaryです。早く帰って寝たいので急いで台帳を仕上げましょう。

いま、猫が4匹というところまで書いたのですが、次のモンキーを書くときに、
インテリセンスが効かないことが分かりました。ぬに?それはいかん!

もう少し

様子見で、続きを書いてみたら認識してくれるかもしれませんよね。
きっとそうですよね?

あれあれ?上手くいきませんね。これは、残業か?

それでは

とにかく最後まで書いてみましょうか。やってみてから考えましょう。

シンタックスハイライトは効くようですね。カラフル嬉しい。
しかし、インテリセンスが欲しいところです。書くのダルイし。

なんだって?

ちょっと、改行してみますか。見やすいし。

あれ?改行したらインテリセンスが効くではないですか。
と思ったら、monkeyとかmousecatが出てこない!

  1. 先に、11行目を12行目にコピペして、
    valueのほうまである状態にする。
  2. .catを消す
  3. .を入力

だと出ますね。インテリセンス。ああ面倒。

まとめ

暫定対策としては、「先に前後を書けばインテリセンスが効くっぽい。」ですね。
これが重要な仕様なのか、バグなのか。要調査です。

環境

Python 3.9.1 | packaged by conda-forge | (default, Jan 10 2021, 02:50:22) [MSC v.1916 64 bit (AMD64)] on win32

.vscode\extensions.json
{
	"recommendations": [
		"ms-python.vscode-pylance",
		"ms-python.python",
		"visualstudioexptteam.vscodeintellicode",
		"oderwat.indent-rainbow",
		"kameshkotwani.google-search",
		"coenraads.bracket-pair-colorizer-2"
	]
}
.vscode\settings.json
{
    "python.testing.pytestEnabled": true,
    "python.formatting.provider": "black",
    "python.envFile": "${workspaceFolder}/.env",
    // "python.languageServer": "Pylance"
}

Excelsior!