- 定義 とは、変数、関数、クラス、インポートされた名前など、セルが作成するグローバル名です。
- 参照 とは、セルが別のセルから読み取るグローバル名です。
古い セルと ブロック セル
ノートブックは各セルの状態をトラッキングし、そのセルを実行する必要があるかどうかを判断します。主なセルの状態には、古い (古い状態) と ブロック (ブロックされた状態) があります。古いセル
一度も実行されていないセルや、最新のコードまたは入力で実行されていないセルは、古い (stale) 状態になります。セルを現在のコードと入力で実行すると、古い状態は解消されます。 セルは次のいずれかの場合に古い状態になります。- セルのコードを編集した場合。
- ノートブックが lazy モードを使用しているときに、上流のセルが実行された場合。このモードでは、ノートブックは下流のセルを自動的に実行せず、古い状態としてマークします。
- lazy モジュールの自動再読み込みが有効なときに、セルが使用している Python モジュールが変更された場合。
ブロックされたセル
セル自体、またはその上流にあるいずれかのセルが無効になっている場合、そのセルはブロックされた状態になります。ブロックされたセルは、入力が変更されても自動的には実行されません。 セルのブロックを解除するには、そのセルが依存している無効なセルを再度有効にします。これにより、ノートブックは、古くなって出力の更新が必要になった下流のセルを実行できるようになります。手順については、セルを無効または有効にするを参照してください。セルを削除する
セルを削除すると、そのセルで定義されたグローバル変数もノートブックから削除されます。ランタイム設定に応じて、削除された変数を参照しているセルは、再実行、無効化、または古い状態 (stale) としてマークのいずれかの処理が行われます。各グローバル名は一度だけ定義する
各グローバル名は 1 つのセルでのみ定義してください。2 つのセルで同じグローバル名を定義すると、ノートブックは下流のセルにとって唯一の信頼できるソースを判断できなくなります。この制限は、変数、関数、クラス、およびインポートしたパッケージ名に適用されます。 一時的な変数については、変数名の先頭に接頭辞としてアンダースコアを 1 つ付けると、そのセル内のローカル変数として扱われます。また、一時的な変数を関数内で定義することもできます。セル間でのミューテーションを避ける
複数のセルで使用するオブジェクトを変更 (ミューテーション) しないでください。ノートブックはオブジェクトのミューテーションをトラッキングしないため、オブジェクトを変更しても、依存するセルは古い (stale) とマークされません。 たとえば、あるセルで、別のセルで定義された DataFrame に列を追加したとします。この場合、その DataFrame を参照しているセルは自動的には再実行されません。ノートブックの状態の整合性を保つには、新しいオブジェクトを作成して新しい変数に代入してください。どうしてもオブジェクトを変更する必要がある場合は、そのオブジェクトを定義しているセル内で変更してください。 詳細については、Variable mutations are not tracked を参照してください。変数と依存関係を確認する
変数を表示する
Variables explorer を使用すると、定義済みの変数とそのタイプ、宣言箇所、参照箇所を確認できます。
ミニマップでセル間の関係を表示する
Dependencies パネルを使用すると、セル間の関係を確認できます。- サイドバーで Explore dependencies () を選択します。
- MINIMAP を選択します。
依存関係グラフを表示する
グラフ ビューを使用すると、セルの依存関係を有向非巡回グラフ (DAG) として可視化できます。- サイドバーで Explore dependencies () を選択します。
- GRAPH を選択します。