【问题标题】:ipython macro interfering with variableipython宏干扰变量
【发布时间】:2023-12-27 23:43:01
【问题描述】:

ipython 中,我定义了一个名为c 的宏(此宏清屏)。

我注意到,当我输入时

c = 2 + 2 

我的宏 c 被执行。我本来期望的,我没有调用宏,而是分配了一个变量 c。

有什么方法可以区分这两者(宏赋值还是变量赋值)?

【问题讨论】:

    标签: python python-2.7 ipython


    【解决方案1】:

    我看不到任何简单的方法来覆盖或区分宏与变量,但macros 可以python 变量名称中的不合法字符开头:

    您可以使用 1c, $c 或任何其他不会与 python 变量名冲突的变体。

    【讨论】:

      【解决方案2】:
      globals()['c'] = 2 + 2
      

      将重新分配c 的值(从而解除它与宏定义的关联)。

      我认为您最好的选择是重命名宏或变量。

      【讨论】: