Saya menggunakan vscode dan saya menemukan linter Python tidak mendeteksi ketika fungsi python dipanggil dengan parameter tipe yang berbeda dari yang didefinisikan oleh tanda tangannya.

Dalam hal ini, fungsi mengharapkan typing.Type[Exception] alih-alih Exception:

enter image description here

Pycharm mendeteksi situasi ini:

enter image description here

Saya pikir mypy tidak mendeteksi yang ini karena menggunakan modul typing (mypy mendeteksi ketidakcocokan tipe dalam tipe bawaan).

  • Apakah ada cara untuk mengkonfigurasi mypy untuk mendeteksi kasus seperti ini?
  • Manakah yang digunakan linter pycharm? Apakah itu ada di vscode?
  • Apakah ada linter lain yang bisa melakukan pekerjaan itu?

Catatan: Saya mengikuti saran tanda dari postingan SO ini (--check-untyped-defs) tetapi tidak berhasil.

1
samthegolden 10 Mei 2021, 19:28

1 menjawab

Jawaban Terbaik

Setelah mengikuti saran di bagian komentar, saya dapat melakukan ini di vscode dengan:

  1. Memasang Pylance plugin dan
  2. Mengatur params berikut pada Pengaturan Pengguna:
    "python.languageServer": "Pylance",
    "python.analysis.typeCheckingMode": "strict",
1
samthegolden 11 Mei 2021, 15:52