ipython宏干扰变量

时间:2014-08-06 17:30:46

标签: python python-2.7 ipython

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

当我输入

时,我注意到了
c = 2 + 2 

我的宏c被执行了。我原以为,我不是在调用宏,而是分配变量c。

有没有办法区分两者(宏观与变量分配)?

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

globals()['c'] = 2 + 2

将重新分配c的值(从而将其与宏的定义取消关联)。

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