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.svgをクリックし、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.svgをクリックし、設定 / 環境設定ダイアログボックスでノード外観および振る舞いを展開し、ページスコープを開きます。次にicons.general.add.svgをクリックし、スコープタイプローカルを選択します。

新規スコープの追加ダイアログボックスでスコープ名(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 のドキュメントを参照してください。

最終更新日 :

関連ページ:

入門

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

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

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

コード補完

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

インスペクション

Windows および Linux 用のファイル | 設定 | エディター | インスペクションmacOSのPyCharm | 環境設定 | エディター | インスペクションこのページを使用して、インスペクションプロファイルのカスタマイズ、インスペクション重大度レベルの構成、イ...

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

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

スコープ

スコープは、プロジェクト内のファイル、パッケージ、ディレクトリのサブセットであり、特定の操作(検索、コードインスペクションなど)の適用を制限できます。さらに、どのスコープのファイルを扱っているかを一度に確認できるように、各スコープのカラーリングを設定できます。プロジェクトが大きくなるにつれて、スコー...