首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单元的ContextPath

单元的ContextPath
EN

Stack Overflow用户
提问于 2011-07-14 15:55:08
回答 1查看 128关注 0票数 1

如何在不使用Prepend的情况下更改单元格的$ContextPath

代码语言:javascript
复制
$ContextPath = Prepend[$ContextPath, "PackageName`"]

我浏览了$ContextPath的文档,决定评估其中的第一个输入单元格。

评估前:

评估后:

我猜这里的不同之处在于,在编写本文档时,并没有为编写它的人启用WebServices。我们可以看到Global位于该单元格的上下文中,因为已经明确提到了这一点。通过转到Cell > Show Expression查看表达式。

选项CellContext设置为全局。现在,让我们创建一个新的单元格并计算$Context

这意味着在该单元格中,我不能使用我在其他notebooks中创建的任何全局对象。我们可以通过更改单元格的CellContext选项来添加全局。我们通过显示表达式和编辑来实现这一点。当您进行评估时,您将看到上下文已更改为全局。现在,让我们在刚刚将上下文更改为global的单元格中尝试一下。

代码语言:javascript
复制
Print["Outside Module = ", $ContextPath]
Module[{},
 Print["Inside Module = ", $ContextPath];
 Manipulate[
  Print["Inside Manipulate = ", $ContextPath];
  Row[{
    Plot[x, {x, -3, 3}, PlotRange -> {{-3, 3}, {-3, 3}}]
    }],
  {{p1, {-1, 2}}, Locator, Appearance -> "L1"}
  ]
 ]

你得到这样的东西了吗:

为什么操作中的上下文会发生变化?在其他笔记本中,这种情况是不会发生的。我猜这与引用样式表的设置有关,但我就是搞不清楚。我们如何临时更改记录笔记本的设置,以便可以在整个笔记本中的任何位置使用全局上下文?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-14 17:44:43

所以,如果我没理解错的话,你在一个文档中心的笔记本上运行一些命令--你不理解上下文的行为?

文档中心使用样式表(Reference.nb),其中Cell[StyleData["Input"]...具有选项CellContext->CellGroup。这也可以使用文档中心页面上的选项Inspector来查看:

这个设置非常适合文档中心,因为它意味着其中的所有示例不会相互干扰,也不会干扰您的Global`定义。

您还可以通过评估菜单设置任何特定笔记本的默认上下文:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6690094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档