PyCharm 2026.2 Help

関数の抽出

関数の抽出 リファクタリングを使用すると、グループ化できるコード箇所を取得し、別の関数に移動して、元のコードをその関数の呼び出しに置き換えることができます。

関数を抽出する際には、変数を確認する必要があります。 出力変数が 1 つの場合、抽出した関数の戻り値として使用されます。 出力変数が複数ある場合、 関数の抽出リファクタリングが適用されず、エラーメッセージが表示されることがあります。

この場合、 関数の抽出を動作させるためのいくつかの回避策があります。 例: すべての出力値を含む特別な data-class を導入することができます。

関数を抽出する

  1. エディターで、メソッドまたは関数に変換するコードブロックを選択します。

  2. メインメニューから「リファクタリング | 抽出 / 導入 | 関数 」を選択するか、「Ctrl+Alt+M 」を押します。 または、コンテキストメニューから「リファクタリング | 関数の抽出 」を選択します。

  3. 表示される 関数の抽出 ダイアログで、新しい機能の名前を指定します。

  4. パラメーター 領域で、次の操作を行います。

    • 対応するチェックボックスをオンまたはオフにして、メソッドパラメーターとして渡される変数を指定します。

    • 必要なパラメーターの名前を変更し、対応するパラメーター行を double-clicking で変更し、新しい名前を入力します。

  5. シグネチャープレビュー ペインで結果を確認し、 OK をクリックして必要な機能を作成します。

    選択されたコードフラグメントは関数呼び出しに置き換えられます。

サンプル

from enum import Enum class Category(Enum): A = 1 B = 2 C = 3 def calculate_tax(category, income): if category == Category.A: discount = 10 elif category == Category.B: discount = 5 else: discount = 0 return income * (100 - discount) / 100
from enum import Enum class Category(Enum): A = 1 B = 2 C = 3 def calculate_tax(category, income): discount = calc_discount(category) return income * (100 - discount) / 100 def calc_discount(category): if category == Category.A: discount = 10 elif category == Category.B: discount = 5 else: discount = 0 return discount

重複の処理

重複するコード箇所が見つかった場合、PyCharm はそれらを抽出された関数の呼び出しに置き換えることを提案します。

2026 年 7 月 14 日