是 Dynamic、DynamicModule、Manipulate 和相关结构的一个选项,当结果不再被显示或使用时,指明一个要计算的表达式.
Deinitialization
是 Dynamic、DynamicModule、Manipulate 和相关结构的一个选项,当结果不再被显示或使用时,指明一个要计算的表达式.
更多信息
- 一般的用法是 Deinitialization:>expr.
- 当包含一个删除结构的单元被删除或笔记本被关闭时,一般运行 Deinitialization.
- 除非预先的初始化已完成,Deinitialization 将不被执行.
- Deinitialization 可能被延迟,例如,结构出现在如剪切板等看不见的位置上时.
- 如果被去初始化的对象是通过使用 Undo 来恢复的,可将其重新初始化. 同样可以使用 Redo 或其他删除对象的操作将其再次去初始化.
范例
打开所有单元 关闭所有单元基本范例 (3)
CreateDialog[DynamicModule[{c}, ColorSlider[Dynamic[c]], Initialization :> (c = Pink), Deinitialization :> (CreateDialog[Graphics[{c, Disk[]}]])]];With[{nb = CreateWindow[]}, CreateDialog[Manipulate[SetOptions[nb, Background -> c, WindowOpacity -> o];Column@{c, o}, {c, Green}, {{o, 0.5}, 0, 1}, Deinitialization :> (SetOptions[nb, Background -> Inherited, WindowOpacity -> Inherited])]]];CreateDialog[DynamicModule[{t}, ProgressIndicator[Dynamic[Clock[Infinity]], Indeterminate], Initialization :> (t = AbsoluteTime[]), Deinitialization :> (CreateDialog[ToString@StringForm["Viewed for `1` seconds", AbsoluteTime[] - t]])]];范围 (2)
CreateDialog[DynamicModule[{pos}, Dynamic[AppendTo[pos, {1, -1}MousePosition[]];MousePosition[]], Initialization :> (pos = {}), Deinitialization :> (CreateDialog[ListPlot[Union@pos, Axes -> False]])]];With[{nb = EvaluationNotebook[]}, CreateDialog[{Slider[Dynamic[CurrentValue[nb, FontSize]], {5, 15}], Dynamic[CurrentValue[nb, FontSize], Deinitialization :> (CurrentValue[nb, FontSize] = Inherited)]}]];属性和关系 (1)
每当 Dynamic 破坏掉一个去初始化结构,系统会再次运行去初始化:
DynamicModule[{inner = RandomColor[]}, Dynamic[{Row[{"outer: ", RandomColor[]}], Dynamic[Row[{"inner: ", inner}], Deinitialization :> (inner = RandomColor[])]}, UpdateInterval -> 1]]巧妙范例 (1)
clock[{h_, m_, s_}] := Graphics[{Table[Text[t, 0.9{Sin[t Pi / 6], Cos[t Pi / 6]}], {t, 1, 12}], Circle[], Green, Rotate[Line[{{0, 0}, {0, 0.9}}], (-2Pi)s / 60, {0, 0}], Blue, Rotate[Line[{{0, 0}, {0, 0.8}}], (-2Pi)(m + s / 60) / 60, {0, 0}], Rotate[Line[{{0, 0}, {0, 0.4}}], (-2Pi)Mod[h + m / 60, 12] / 12, {0, 0}]}]CreateDialog[Dynamic[DateString[], UpdateInterval -> 1, Deinitialization :> CreateDialog[clock@Take[DateList[], -3]]]];相关指南
相关的工作流程
- 构建一个 Manipulate ▪
- 把自动更新的动态内容放到笔记本中 ▪
- 制作面板
文本
Wolfram Research (2007),Deinitialization,Wolfram 语言函数,https://reference.wolfram.com/language/ref/Deinitialization.html.
CMS
Wolfram 语言. 2007. "Deinitialization." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/Deinitialization.html.
APA
Wolfram 语言. (2007). Deinitialization. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/Deinitialization.html 年
BibTeX
@misc{reference.wolfram_2026_deinitialization, author="Wolfram Research", title="{Deinitialization}", year="2007", howpublished="\url{https://reference.wolfram.com/language/ref/Deinitialization.html}", note=[Accessed: 11-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_deinitialization, organization={Wolfram Research}, title={Deinitialization}, year={2007}, url={https://reference.wolfram.com/language/ref/Deinitialization.html}, note=[Accessed: 11-September-2026]}