【问题标题】:How to clear variables in ipython?如何清除ipython中的变量?
【发布时间】:2014-05-20 23:34:08
【问题描述】:

有时我在同一个 ipython 会话中重新运行一个脚本,当变量没有被清除时,我会感到很意外。如何清除所有变量? 每次我调用魔术命令 %run 时是否可以以某种方式强制执行此操作?

谢谢

【问题讨论】:

    标签: python memory ipython


    【解决方案1】:

    %reset 似乎清除了定义的变量。

    【讨论】:

    • 谢谢。有什么方法可以在每次运行前自动设置它?
    • 你可以将你的脚本转换成一个函数来保持全局命名空间干净。
    • 刚发现 %reset -f 清除全局命名空间,无需用户确认
    • yes reset -f 很好,再也不用每次手动确认了:)
    • @Victor % 用于 ipython 魔术命令这里是 %reset ipython.readthedocs.io/en/stable/interactive/…
    【解决方案2】:

    在@ErdemKAYA 评论后编辑。

    要擦除变量,请使用魔法命令:

    %reset_selective <regular_expression>
    

    从命名空间中删除的变量与给定的&lt;regular_expression&gt; 匹配。

    因此

    %reset_selective -f a 
    

    将删除所有包含a的变量。

    相反,只删除a 而不是aa

    In: a, aa = 1, 2
    In: %reset_selective -f "^a$"
    In: a  # raise NameError
    In: aa  # returns 2
    

    更多示例请参见%reset_selective?,正则表达式教程请参见https://regexone.com/

    要删除命名空间中的所有变量,请参见:

    %reset?
    

    【讨论】:

    • 否则python中的“del a”也可以使用。
    • 不,此命令会将name_variable 视为正则表达式语句,并将删除与其匹配的任何内容。
    • @ErdemKAYA 谢谢,我以前从未注意到它!答案已编辑。
    • 一点也不! :) 这确实有点违反直觉。
    【解决方案3】:

    在 iPython 中,您可以像这样删除 单个 变量:

    del x
    

    【讨论】:

      【解决方案4】:

      我试过了

      %reset -f
      

      并在没有提示的情况下清除了所有变量和内容。 -f 对给定命令执行强制操作,而不提示 yes/no

      希望这有帮助.. :)

      【讨论】:

        【解决方案5】:

        在新脚本中添加以下行将在每次重新运行脚本时清除所有变量:

        from IPython import get_ipython
        get_ipython().magic('reset -sf') 
        

        为了让生活更轻松,您可以将它们添加到您的默认模板中。

        在 Spyder 中:Tools&gt;Preferences&gt;Editor&gt;Edit template

        【讨论】:

        • 我喜欢这个,因为它也可以从脚本运行。
        【解决方案6】:

        除了前面提到的方法。也可以使用命令del删除多个变量

        del variable1,variable2
        

        【讨论】:

          【解决方案7】:

          控制台面板中的退出选项也会清除变量资源管理器中的所有变量

          *** 请注意,您将丢失在控制台面板中运行的所有代码

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2021-11-09
            • 1970-01-01
            • 2017-09-16
            • 1970-01-01
            • 2012-05-31
            • 2011-10-17
            • 1970-01-01
            相关资源
            最近更新 更多