web-dev-qa-db-ja.com

PyCharmの「期待されるタイプX、代わりにYを取得した」への対処方法

PyCharmを使用している場合、np.array(0.0)と記述すると、Pycharmのコードスタイルインスペクションでエディターに_Expected type 'Union[ndarray, Iterable]', got 'float' instead_という警告が表示されます。 np.array([0.0])と書いても警告は出ません。

コーディングするとき

_from scipy.special import expit
expit(0.0)
_

_Expected type 'ndarray', got 'float' instead_を取得している間

_expit(np.array([0.0]))
_

それを解決します。

Pycharmのコードスタイルインスペクションでタイプエラーが発生する可能性があることを教えてほしいと思いますが、良いプログラミングという意味でそれにどう対応すべきかわかりません。 PyCharmは私を叱る権利がありますか?長いバージョンを使用する必要がありますか?または、読みやすさとコーディングの速度のために短いバージョンを保持する必要がありますか?

コードを長いバージョンに変更するべきではない場合-Pycharmのコードスタイル検査の警告を取り除くことはできますか、それとも悪い考えです。それらは他の場合には正しい可能性があり、警告を調整することができないためです。具体的には?

6
Make42

expit関数の仕様 を見てください。スカラー引数を提供することが許可されているとは何も言われていません-numpy.ndarray。 PyCharmは、反復可能(したがってリスト)が受け入れ可能であることを伝えるのに十分スマートですが、このメッセージは警告ではありません-記述されているコードが関数の仕様を満たしていないことを示しています。 @JonClementsがコメントで指摘しているように、numpyのスカラーブロードキャスト機能はこのコードの実行を許可しますが、PyCharmはこれを推測するほどスマートではありません。

注:@ cs95からの回答は、型チェックを無効にする方法を説明しており、受け入れられた回答としてより適切な場合があります。

2
holdenweb

PyCharmは、ソースコードのタイプヒントから、渡した引数が正しくないと判断します。

あなたの質問は、この型チェックを無効にする方法を理解することの1つを単純化します。あなたはこのようにそれを行うことができます:

  1. Settings/Preferencesに移動

  2. サイドバーでInspectionsをクリックします

  3. Pythonタブを展開します

  4. Type Checkerまでスクロールして、チェックを外します

PyCharmは、不正な関数引数に関する警告の発行を停止する必要があります。

6
cs95

@brunoddが以前コメントで言ったように、チェックを外す正しいタグはType checkerです。

  • Settings/PreferencesCtrl + Alt + S)に移動します
  • サイドバーInspections
  • Pythonタブ
  • Type CheckerをオフにしてApplyを押します

これは本当に厄介なことですが、PyCharmは正しいとしてもいくつかのタイプを識別できません。

1
pedroprates