コピーして移動リファクタリング
移動リファクタリングを使用すると、プロジェクト内のクラス、関数、モジュール、ファイル、ディレクトリを移動できます。その際、PyCharm はこれらの動きを追跡し、ソースコード内の移動されたシンボルへのすべての参照を自動的に修正します。
次の移動リファクタリングが利用できます。
ファイルの移動リファクタリングはファイルを別のディレクトリに移動します。
ディレクトリの移動リファクタリングはディレクトリを別のディレクトリに移動します。
モジュールメンバーの移動リファクタリングは、Python モジュールのトップレベルシンボルを移動します。
ローカル関数 / メソッドをトップレベルにするリファクタリングは、メソッドまたはローカル関数を最上位関数に変換し、指定されたファイルに移動します。
ファイルまたはディレクトリを別のディレクトリに移動する
プロジェクトツールウィンドウでファイルまたはディレクトリを選択します。
メインメニューまたはエディターのコンテキストメニューから
を選択するか、F6 を押します。宛先ディレクトリフィールドで、選択したファイルまたはフォルダーの移動先のフォルダーを指定します。リストから既存のフォルダーを選択するか、作成する親フォルダーへの絶対パスを入力します。選択したファイルまたはフォルダーへの参照をリファクタリング結果に従って更新するには、参照を検索チェックボックスを選択します。
トップレベルシンボルの移動
メンバーを移動する
キャレットを最上位シンボルに配置します。たとえば、次のようにします。
メインメニューまたはエディターのコンテキストメニューからモジュールメンバーの移動ダイアログが開きます。
を選択するか、F6 を押します。コントロールの詳細については、ダイアログリファレンスを参照してください。
このダイアログで、移動するメンバーを選択してターゲットファイルを指定します。
関数 / メソッドをトップレベルに移動する
このリファクタリングは、インスタンスの属性または変数への参照を囲むスコープからパラメーターに変換し、それに応じて既存の使用箇所を更新することによって、ローカル関数またはメソッドをトップレベルに移動します。
関数またはメソッドをトップレベルに移動する
キャレットをローカル関数またはメソッド名の上に置きます。
メインメニューまたはエディターのコンテキストメニューから
を選択するか、F6 を押します。表示されるメソッドをトップレベルにするダイアログで、移動先を指定します。手動で入力するか、参照ボタン をクリックして宛先ファイルを選択ダイアログで目的のファイルを見つけることができます。
リファクタリングをクリックしてリファクタリングを実行するか、プレビューをクリックして、検索ツールウィンドウにプレビューを表示します。プレビュー結果が満足であれば、リファクタリング実行をクリックして移動を確認します。
サンプル
前 | 後 |
---|---|
import math
class Solver(object):
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
def demo(self):
d = self.b ** 2 - 4 * self.a * self.c
if d >= 0:
disc = math.sqrt(d)
root1 = (- self.b + disc) / (2 * self.a)
root2 = (- self.b - disc) / (2 * self.a)
print(root1, root2)
return root1, root2
else:
raise Exception
Solver(2, 123, 0.025).demo()
|
import math
class Solver(object):
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
def demo(b, a, c):
d = b ** 2 - 4 * a * c
if d >= 0:
disc = math.sqrt(d)
root1 = (- b + disc) / (2 * a)
root2 = (- b - disc) / (2 * a)
print(root1, root2)
return root1, root2
else:
raise Exception
s = Solver(2, 123, 0.025)
demo(s.b, s.a, s.c)
|
コピーリファクタリング
コピーリファクタリングでは、異なるディレクトリまたは同じディレクトリにファイルまたはディレクトリのコピーを作成できます。
コピーを実行するリファクタリング
ツールウィンドウ(プロジェクトツールウィンドウなど)で目的の項目を選択します。または、必要なクラスまたはファイルをエディターで開きます。
以下のいずれか 1 つを実行します:
メインメニューまたはコンテキストメニューから
を選択します。F5 を押します。
プロジェクトツールウィンドウで、Ctrl を押したままアイテムを目的の場所にドラッグします。
開いているコピーダイアログで、作成するコピーの名前と場所を指定し、OK をクリックします。
関連ページ:
プロジェクト内で検索して置き換える
プロジェクト内のテキスト文字列を検索したり、さまざまな範囲を使用して検索プロセスを絞り込んだり、検索から特定の項目を除外したり、使用箇所や出現箇所を見つけたりすることができます。プロジェクトで検索文字列を見つけるを押すか、メインメニューからを選択します。検索フィールドに検索文字列を入力します。または、エディターで検索する文字列をハイライトしてを押すか、コンテキストメニューから複数ファイル内検索を選択します。PyCharm はハイライトされた文字列を検索フィールドに入力します。以前の検索のリスト...
モジュールメンバーの移動ダイアログ
このダイアログは、最上位のシンボルに対してのみ表示されます。このダイアログを使用すると、次のことができます。複数のメンバーを一度に選択して移動します。そうすることで、従属シンボルがハイライトされます。エディターでいくつかのシンボルを選択します。そうすることで、それらはダイアログで事前に選択されます。クラスと関数のほかに、トップレベルのモジュールで定義されたグローバル変数を移動します。From この読み取り専用フィールドには、元のファイルへの完全修飾パスが表示されます。To このフィールドには、宛先フ...
コードのリファクタリング
リファクタリングは、新しい機能を作成せずにソースコードを改善するプロセスです。リファクタリングは、コードを安定させ、保守を容易にできます。リファクタリングを実行するには、以下の一般的な手順に従いますリファクタリングするシンボルまたはコード断片を選択 (またはカーソルを合わせて) します。次の PyCharm コンポーネントのシンボルを選択できます。プロジェクトビュー、構造ツールウィンドウ、エディター、UML クラスダイアグラム、以下のいずれか 1 つを実行します: メインのメニュー上または選択した...