编写过Matlab代码的读者,基本都会有编写初始化代码的习惯,如下代码段1所示:
clc; % 清空命令窗口所有内容
clear; % 清除所有的变量
close all; % 关闭所有的图片窗口
代码段1
但现在很多时候都是使用Python进行编程,那么要如何去在Python中实现上述类似的功能呢。可以参考以下代码段2(注意是可以,但不一定适用):
%reset-f #强制清除所有的变量,相当于clear
# 特别注意:上述代码行需要放在最开头,避免把导入的库清理了
# 其中-f表示不需要经过用户同意直接执行reset,即force reset without asking for confirmation.
import matplotlib.pyplot as plt
%clear #相当于MATLAB的"clc;", 表示清空命令窗口.
plt.close("all") #相当于MATLAB的"close all", 表示关闭所有的图片窗口.
代码段2
在常规的Python环境中,“%reset-f
”和 “%clear
” 不是有效的命令,它们是特定于交互式环境(如IPython或Jupyter Notebook)的magic命令。因此,很多读者在采用代码段2的解决办法后往往会出现以下报错(同样也是我碰到的问题,也是我撰写这篇博客的原因):
SyntaxError: invalid syntax
既然没有现成的,那么我们就不妨直接通过编写自定义函数来实现类似的功能。代码段3编写了一个函数代替“%reset-f
”来清除所有全局变量,然后在你的代码中调用该函数来实现重置变量的效果,也可以直接复制粘贴到代码的最开头。
import sys
def reset_variables():
global_vars = list(globals().keys())
for var in global_vars:
if var not in ['__name__', '__doc__', '__loader__', '__package__', '__spec__']:
del globals()[var]
reset_variables()
代码段3
对于清空命令窗口的功能,可以在在命令窗口点击鼠标右键→选择“全部清除”,也可以使用“os.system
”来执行系统命令来清除屏幕,如代码段4所示:
import os
os.system('cls') # Windows下使用该关键词cls,MacOS下关键词替换为clear
代码段4
[参考文献]