PyCharm 2020.2ヘルプ

コード品質支援のヒントとコツ、またはコードをきれいに見せる方法

このチュートリアルの内容

このチュートリアルでは、PyCharmのコードインテリジェンス機能を使用して、Pythonプロジェクトでソースコードを作成する手順を順を追って説明します。PyCharmはソースコードを適切なインデント、スペース、インポートなどで完璧な形に保つのに役立ちます。実際、PyCharm自体がコード品質ツールであることがわかります。

Pythonプログラミングはこのチュートリアルの範囲外です。Python言語の詳細については、公式Webサイト(英語)を参照してください。

始める前に

以下を確認してください:

  • PyCharmバージョン5.0以降を使用しています。それでもPyCharmをお持ちでない場合は、このページからダウンロードしてください。PyCharmをインストールするには、プラットフォームに応じて、指示に従います。詳細については、製品のドキュメントを参照してください。

  • Pythonプロジェクト(ファイル | 新規プロジェクト...)が作成されました。詳細については、製品のドキュメントを参照してください。

  • 2つのディレクトリsrcおよびtest_dirファイル | 新規または Alt+Insert)を作成しました。

  • プロジェクトのsrcおよびtest_dirディレクトリ(ファイル | 新規または Alt+Insert)にPythonファイルを追加しました。ファイルの作成については、セクションプロジェクトへの投入を参照してください。

コードスタイル違反のハイライト

新しいPythonファイルsrc / Solver.py Alt+Insertを作成します。作成されたファイルはすぐに開いて編集できます。デフォルトでは、ファイルにはコンテンツがありません。これは、Solver.py ファイルが(Pythonファイルの場合)何も含まれていないファイルテンプレートによって作成されているためです。

次に、キーワード classの入力を開始します。入力を開始するとすぐに、PyCharmは候補リストを表示してコードを完成させます:

py code1 png

(詳細は、製品マニュアルのコード補完ページを参照してください)。

赤い曲線は、次に予想されるエントリを示します。この場合、これは予想される識別子です。クラス名 Solverを入力します。赤い曲線はクラス名の後に移動します。この曲線の上にマウスポインターを置くと、エラーの説明(「コロンが必要です」)が表示されます。また、右側のガターの赤いエラーストライプに注意してください。同じエラーを示しています。

py colon expected png

OK、コロンを入力し、Enterを押します。Pythonコードスタイルによれば、次の文はインデントされています。 Enterの後で偶然スペースを押すと、コードスタイルの設定に違反します。

PEP8 インスペクションのチューニング

しかし、デフォルトでは、これらの違反は弱い警告であるため、見えません。まず、重要性を高めましょう。メインツールバーの icons.general.settings.png をクリックし、Settings / PreferencesダイアログのインスペクションページにPEP8と入力してPEP8関連のインスペクションをすべて検索し、Severityドロップダウンリストから警告を選択します:

py inspection severity png

変更を適用し、ダイアログを閉じます。さあ、ソースコードに戻ってみましょう。

PEP8ルールの追跡

今PyCharmは最高のものを示しています! あなたのコードスタイルの完全性を保護するために、注意を要するものです。インデントされたスペースが強調表示され、def demo(self,a,b,c):などの次のステートメントを入力すると、PyCharmはPEP8 インスペクションからのメッセージを表示します。

py inspection pep8 png

ご覧のとおり、PyCharmは公式のPythonスタイルガイドとしてPEP8(英語)をサポートしています。インスペクション(Ctrl+Alt+S -インスペクション)のリストを調べると、PyCharmがコードに対してpep8.pyツールを起動し、コードスタイル違反を特定していることがわかります。

コードインスペクションとその設定

インスペクションをさらに注意深く参照してください。このページを開いたばかりの場合は、デフォルト設定のデフォルトインスペクションプロファイルが表示されます。つまり、インスペクションは現在のプロジェクトのすべてのソースに適用されます。

このプロファイルを2つの異なるスコープに合わせてカスタマイズしてみましょう。

  • テストスコープでは、スペルミスはタイプミスとしてマークする必要があります (緑)

  • 製品スコープでは、スペルミスはエラー(赤色)としてマークする必要があります。実際にはタイプミスのコードを生成できますか?

その方法は次のとおりです...

スコープの作成

まず、2つのスコープを定義しましょう。これを行うには、メインツールバーの icons.general.settings.png をクリックし、設定/環境設定ダイアログボックスでノード外観および振る舞いを展開し、ページスコープを開きます。次に icons.general.add.png をクリックし、スコープタイプローカルを選択します。

新規スコープの追加ダイアログボックスでスコープ名(Test)を入力し、プロジェクトツリーでTestスコープに含めるディレクトリtest_dirを選択します。ディレクトリを含めると、パターンフィールドが自動的に入力されることに注意してください。

py scope test png

このプロセスを繰り返して、本番スコープを作成します。

これらのスコープでインスペクションプロファイルを作成する

次に、デフォルトのプロファイルのコピーを作成してみましょう(このプロファイルは編集可能ですが...安全のために):

py copy profile png

MyProjectProfileなどの新しい名前を付けます。この新しいプロファイルはデフォルトのコピーであり、インスペクションの同じセットを持っています。

この新しいプロファイルを選択して、スペリングインスペクションを探して変更しましょう。Spelling インスペクションを見つけるには(すでにこれまでに行っています)、検索エリアに spel と入力してください。

次は何ですか? すべてのスコープボタンをクリックし、リストからTestスコープを選択します。本番スコープで同じ操作を繰り返します

py spel test scope png

範囲「テスト」では、インスペクションの重大度はそのままです(タイプミス)。ただし、スコープは「Production」です。"エラー"を選択します。重大度のリストから:

py spel production scope png

インスペクションのカラーコードに注意してください。変更されていない場合は黒で表示されます。青色の場合は、変更されたことを意味します。

変更を適用してダイアログを閉じる...

変更されたインスペクションプロファイルは準備ができています。その名前はプロジェクトのデフォルト (コピー)で、テストおよび本番スコープのスペリングインスペクションの設定が異なります。次に、このプロファイルに対してコードをインスペクションしましょう。これを行うには、メインメニューでコード | コードのインスペクションを選択し、ダイアログボックスで希望するプロファイルとスコープを選択します。

py inspect code against scope png

それを2回しましょう - テストおよび本番スコープのために(それ以上のインスペクションと共有のためにインスペクション結果を保存したいなら、それらをエクスポートすることができる)。結果を調べる:

py spel inspection png

エラーの強調表示

PyCharmは、スタイル違反をコーディングするだけでなく、選択したプロファイルに応じて他のエラーも強調表示します。

例:インスペクションプロファイルにPython インスペクション 未解決の参照が含まれていて、まだインポートされていないシンボルを使用している場合、PyCharmは未解決の参照に下線を引いてimport文を追加することを提案します:

py import png

製品のドキュメントを参照してください。

ソースコードの生成

PyCharmは、コードを自動生成する多くの可能性を提供します。製品ドキュメントで自動生成機能を確認できます。主なコード生成手順を見てみましょう。これを行うには、ファイルSolver.pyの内容をすべて削除し、最初からやり直します。

まず、クラスのインスタンスを作成します。

py create instance of a class png

次に、Alt+Enter を押して、インテンションアクションクラス 'Solver' を作成を選択します。

py create class intention action png

すばらしいです! PyCharmはクラスをスタブしています:

py create class stub png

次に、クラスインスタンスにメソッドを追加しましょう。これを行うには、クラスインスタンスの後にドットを入力し、メソッド名を入力します。この方法はまだ存在せず、PyCharmは次の方法を提案しています:

py create method in class png

手作業をしましょう - ソースコードを入力してください。判別式を計算するときは、平方根を抽出する必要があります。ライブラリ mathに専用の機能 sqrt がありますが、まだインポートされていません。それでは、PyCharmがどのようにそれに対処しているかを見てみましょう。 Alt+Enter を押してインポート '数学'を選択します:

py create import png

次のようなソースコードになっています:

import math class Solver(object): def demo(self,a,b,c): d = b ** 2 - 4 * a * c disc = math.sqrt(d) root1 = (- b + disc) / (2 * a) root2 = (- b - disc) / (2 * a) print (root1, root2) return root1, root2

しかし、いくつかの重要な分析が欠落しています。ラジカル dを分析したいと思います。それがゼロまたは正の場合、判別式および方程式のルートが計算されます。radicandが負の場合は、例外を発生させましょう。PyCharmがこの作業をどのように完了できますか?

コードブロックを if 構造で囲みましょう。 d が負でないときに完了するステートメントを選択し、Ctrl+Alt+T を押します(またはメインメニューでコード | 囲むを選択します)。

py surround code png

候補リストから if オプションを選択します。ご覧のとおり、PyCharmは自動的に if True: を追加し、選択した行をインデントします。

py surround added png

ブール式にはまったく興味がありませんため、選択した Trued >= 0に変更しましょう。次に、最後の行の最後にキャレットを置き、Enterを押します。キャレットは if ステートメントと同じインデントで次の行に置かれます。 else: clause hereと入力し、期待されるインデントに関するPyCharmレポートを参照してください:

py else indent expected png

再度 Enter を押すと、キャレットはインデントされた位置にあります。PyCharmの強力な自動コード補完を使用して、例外式を入力できます:

py completing code png

コードの再フォーマット

Solver.pyファイルをもう一度見てみましょう。右の側ガターには黄色の縞模様があります。ストライプの上にマウスポインターを合わせると、PyCharmは対応する問題の説明をコードに表示します。

py warnings png

良いニュースは、彼らが警告であり、結果に影響を与えないことです。悪い知らせはあまりにも多く、それぞれを一つずつ修正することはできません。そんなにソースコードを素敵で綺麗にすることは可能でしょうか?

PyCharmは言う-はい。これはコードの再フォーマット機能です。それでは、ファイル全体のフォーマットを変更してみましょう。これを行うには、Ctrl+Alt+L を押します(またはメインメニューでコード | コードの再フォーマットを選択します)。

py reformat code done png

コードを見てください - PEP8関連の欠点はすべて消えています。

自分でフォーマットルールを定義できることに注意してください。これを行うには、コードスタイルの設定を開き、言語(この場合はPython)を選択して、必要な変更を行います。

py reformat code settings png

ドキュメントコメントの追加

OKをクリックすると、書式設定は修正されますが、まだいくつかのストライプが残っています。避けられない黄色の電球は、docstringコメントを追加する可能性を示しています:

py intention docstrings png

この提案を選択し、追加された特定のパラメータのdocstringコメントを参照してください:

py intention docstrings done png

エディター設定の型コメントをスタブに挿入するページで、チェックボックスドキュメントのコメント文字列に型プレースホルダを挿入するを選択する必要があります。

py insert type placeholder setting png

いくつかのドキュメントストリングフォーマットがあり、ドキュメントコメントはPython 統合ツールページで選択したフォーマットで作成されます。望むなら、ドキュメントストリングフォーマットを、たとえば、Epytextまたはプレーンテキストに変更することができます。

型ヒント

ドキュメントコメントは、予想されるタイプのパラメータ、戻り値、またはローカル変数を定義するために使用できます。なぜそれをすべて必要としますか?例: demo() メソッドに渡すパラメータの種類を制御しておきたい。これを行うには、対応する情報をドキュメントのコメントに追加してみましょう(ちなみに、コード補完はドキュメントのコメントに気を付けてください):

py docstrings completion png

次に、メソッド呼び出しを見ると、間違ったパラメータがPyCharmのインスペクション タイプチェッカーによって強調表示されていることがわかります。

py type checker png

型ヒントの詳細については、PyCharmのドキュメントを参照してください。

最終更新日: 2020年7月16日

関連ページ:

入門

PyCharmは、Python開発者に幅広い必須ツールを提供する専用のPython統合開発環境(IDE)であり、緊密に統合されて、生産的なPython、Web、およびデータサイエンス開発のための便利な環境を作成します。最適なPyCharmを選択してください:PyCharmには3つのエディションがあり...

プロジェクトの作成と管理

PyCharmで何をしても、プロジェクトのコンテキストでそれを行います。プロジェクトは、完全なソフトウェアソリューションを表す組織単位です。これは、コーディング支援、一括リファクタリング、コーディングスタイルの一貫性などの基盤として機能します。PyCharmでフォルダーを開くと、.ideaサブフォル...

コード補完

このセクションでは、コーディングプロセスのスピードアップを可能にするコンテキスト対応コード補完のさまざまなテクニックについて説明します。基本補完:基本コード補完は、可視性スコープ内のクラス、メソッド、およびキーワードの名前を完成させるのに役立ちます。コード補完を呼び出すと、PyCharmはコンテキス...

インスペクション

macOSのPyCharm | 環境設定 | エディター | インスペクションUse this page tocustomize inspection profiles,configure inspection severity levels,disable and enable inspectio...

プロファイルのカスタマイズ

導入:PyCharmでは、コード検証分析の設定を行い、インスペクションプロファイルとして保存することができます。既存のインスペクションプロファイル(デフォルトプロファイルを含む)をカスタマイズし、新しいプロファイルを作成することができます。また、インスペクションプロファイルを共有、インポート、および...

スコープ

Ascopeis a subset of files, packages and/or directories in your project, to which you can limit the application of specific operations, for examplesea...