Python和科学计算认证群组  - 讨论区

标题:Python是否有类似Matlab中close, clear这类清除记忆功能的函数。

2011年07月08日 星期五 20:32

RT,

matlab中利用

close all;

clear all;

可以随时消除工作空间中的变量值,以致不会被重复调用。

请问Python是否可以?

2011年07月09日 星期六 20:42

你是指在IPython的交互环境中运行程序时吗?

在IPython中用run运行程序时,都是在独立的运行环境中运行,结束之后才将程序运行环境中的结果复制到IPython环境中,因此不会有变量被重复调用的问题。

如果你是指在自己的程序中想删除所有全局变量的话,可以自己编写一个clear函数,通过globals()获取全局变量然后将其中不需要的内容删除,例如下面的程序保留函数,类,模块,删除所有其它全局变量:

def clear():

    for key, value in globals().items():

        if callable(value) or value.__class__.__name__ == "module":

            continue

        del globals()[key]

不过程序中应该避免这种对全局变量的依赖。你也可以在IPython下用此函数清空全局变量。

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号