CellContext
Cellのオプションで,セルの内容の評価に使うコンテキストを指定する.
詳細
- 次の設定を使うことができる.
-
"context`" 明示的なコンテキスト Notebook このノートブックに対して一意的なもの CellGroup このセルグループに対して一意的なもの Cell このセルに対して一意的なもの - デフォルト設定はCellContext->"Global`"である.
- CellContext->Cellの場合は,現行セルに一意的なデフォルトのコンテキストが使われる.このコンテキストは,他のすべてのセルのデフォルトのコンテキストと常に異なる.しかし,現行セルで行われる評価中は同じままである.
- CellContext->CellGroupの場合は,現行セルおよびそれによって生成される出力を含む,最も内側のセルグループ内のセルで,共通の一意的なデフォルトコンテキストが使用される.
- CellContext->Notebookの場合は,現行ノートブック内のすべてのセルに共有される一意的なデフォルトコンテキストが使われる.
- CellContextは実質的に,一つのWolframシステムセッション内の一連の評価がお互いに独立するようにする.
- CellContextを使ってデフォルトコンテキストを変更することで,In,Out,$Lineのようなセッション変数の値が実質的に局所化される.
- CellContextは,
の評価とDynamicおよび関連構造によって引き起こされる評価の両方に影響する. - CellContextの設定値は,セルが評価される際に使われる$Contextと$ContextPathのデフォルトの初期値を決定する.
- $Contextと$ContextPathの値は,CellContextで定義されたコンテキストについて局所的であるとされる.これらに変更を加えた場合,その変更は同じデフォルトのコンテキストを持つすべてのセルに影響する.
- 一般に,CellContextによって生成される各デフォルトコンテキスト別にパッケージをロードしなければならない.パッケージは一般に異なるデフォルトコンテキスト間では不可視である.
- CellContextは,個々のセルレベルよりもスタイルシートや完全なノートブックレベルで設定されることの方が多い.
- CellContext->Cellによって生成される典型的なコンテキスト名はCell$$n の形式である.
- カーネルがCellContextで指定されたシンボルを含む低レベルのボックスをフロントエンドに送ると,フロントエンドはこれらのボックスの表現でこれらのシンボルを$CellContext`で修飾する.これらのボックスがカーネルに送り返す際に,フロントエンドはCellContextの現行設定を$CellContext`で置換する.
- ドキュメントページの例題グループは,デフォルトで,CellContextCellGroupになっている.
例題
すべて開く すべて閉じる例 (3)
カスタムのCellContextでセルを作る:
CellPrint[ExpressionCell[Dynamic[{v, Context[v]}], "Print", CellContext -> "MyExampleContext`"]]このドキュメント中の例題では,例題の各グループに一意的なCellContextが使われている:
Context[t]t = 23この例題は上とは違うグループに属しており,異なるコンテキストを持つ:
Context[t]前のグループで割り当てられた値は,異なるコンテキストにおける異なるシンボルに対してである:
tスコープ (5)
CellContextは,修飾されていないすべての名前の解決に影響する:
{Context[a], Context[b], Context[c]}CellContextは,完全に修飾された名前あるいはすでに$ContextPathにある名前には影響しない:
{Context[Global`a], Context[Plot]}CellContextは,$Contextと$ContextPathのデフォルト値に影響する:
{$Context, $ContextPath}動的評価はCellContextの影響を受ける:
Dynamic[{a, Context[a]}]Print["Before: ", $Context];
Begin["MyExampleContext`Private`"];
Print["During: ", $Context];
End[];
Print["After: ", $Context];Do[CellPrint[ExpressionCell[Dynamic[{x, Context[x]}], "Print", CellContext -> Notebook]], 2]Do[CellPrint[ExpressionCell[Dynamic[{x, Context[x]}], "Print", CellContext -> CellGroup]], 2]Do[CellPrint[ExpressionCell[Dynamic[{x, Context[x]}], "Print", CellContext -> Cell]], 2]特性と関係 (2)
DynamicBoxおよび関連する低レベルの構造は$CellContext`を使ってCellContextを表す:
CellPrint[ExpressionCell[Dynamic[x], "Print"]]NotebookRead[PreviousCell[]]直接式を表す他のボックスも$CellContext`を使う:
CellPrint[ExpressionCell[Interpretation["sum", x + y], "Print"]]NotebookRead[PreviousCell[]]$CellContext`を使ってボックスの複製コピーをペーストすると,局所的に指定されたコンテキストが使われる:
CopyToClipboard[ExpressionCell[Dynamic[{x, Context[x]}], "Print", CellContext -> Cell]];
Paste[];
Paste[];考えられる問題 (1)
CellContextは,通常のトップレベルのセルに設定できる:
CellPrint[ExpressionCell[Dynamic[{v, Context[v]}], "Print", CellContext -> "MyExampleContext`"]]インラインセルに対する設定はトップレベルの設定のために無視される:
CellPrint[ExpressionCell[Dynamic[ExpressionCell[{v, Context[v]}, CellContext -> "InnerContext`"]], "Print", CellContext -> "OuterContext`"]]関連するガイド
-
▪
- 名前空間の管理 ▪
- ノートブックの評価オプション ▪
- スタイルシート ▪
- パッケージの開発 ▪
- パッケージの保護
関連するワークフロー
- それぞれのノートブックに個々のコンテキストを自動的に使う
テキスト
Wolfram Research (2007), CellContext, Wolfram言語関数, https://reference.wolfram.com/language/ref/CellContext.html (2024年に更新).
CMS
Wolfram Language. 2007. "CellContext." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2024. https://reference.wolfram.com/language/ref/CellContext.html.
APA
Wolfram Language. (2007). CellContext. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/CellContext.html
BibTeX
@misc{reference.wolfram_2026_cellcontext, author="Wolfram Research", title="{CellContext}", year="2024", howpublished="\url{https://reference.wolfram.com/language/ref/CellContext.html}", note=[Accessed: 10-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_cellcontext, organization={Wolfram Research}, title={CellContext}, year={2024}, url={https://reference.wolfram.com/language/ref/CellContext.html}, note=[Accessed: 10-August-2026]}