You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何使用Clear["Global`*"]无法清除K[r]?

为什么Mathematica中Clear["Global`*"]无法清除K[r]?

问题原因

核心在于K是Mathematica的内置系统符号,它归属System上下文,而非你当前操作的Global上下文:

  • 当执行K[r]=4r;时,实际是给内置符号K添加了一个函数定义(DownValue),这个定义虽在当前会话中创建,但符号本身属于系统上下文。
  • Clear["Global*"]仅负责清除Global上下文下所有自定义符号的定义、值等信息,不会触及System`上下文里的内置符号及其附加定义。
  • 而A[r]、B[r]是你在Global上下文创建的自定义符号,因此Clear["Global*"]`可以完全清除它们的定义。

解决办法

  • 若要清除K的自定义定义,直接使用Clear[K],它会清除该符号的所有DownValues、UpValues等;
  • 或使用ClearAll[K],除清除定义外,还会清除符号的属性、消息等附加信息。

原代码示例

In[1]:=$Context
K[r]=4r;
Clear["Global`*"];
K[r]
Out[1]=Global` 
Out[4]=4r

内容的提问来源于stack exchange,提问作者matrixbud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 22:14:51