我一直在寻找这个问题的准确答案已有几天了,但是还没有任何好的结果。我不是编程的完整初学者,但即使在中级水平上也还不是。
当我进入Python的外壳程序时,键入:dir()
并且可以看到当前作用域(主块)中所有对象的所有名称,其中有6个:
['__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__']
然后,例如,当我声明一个变量时,x = 10
它会自动添加到内置模块下的对象列表中dir()
,当我dir()
再次键入时,它现在显示:
['__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'x']
函数,类等也是如此。
我如何删除所有这些新对象而不删除开始时可用的标准6?
我在这里阅读了有关“内存清理”,“控制台清理”的信息,该命令将删除命令提示符窗口中的所有文本:
>>> import sys
>>> clear = lambda: os.system('cls')
>>> clear()
但是,所有这些都与我要实现的目标无关,它不会清除所有使用过的对象。
您可以使用以下方法删除个人名称del
:
del x
或者您可以将它们从globals()
对象中删除:
for name in dir():
if not name.startswith('_'):
del globals()[name]
这只是一个示例循环;它仅在防御性上删除不以下划线开头的名称,并假设(并非毫无道理)您在解释器的开头仅使用了没有下划线的名称。如果您确实想透彻一点,则可以使用硬编码的名称列表来保留(白名单)。除了退出并重新启动解释器外,没有内置功能可以为您执行清除操作。
您导入(import os
)的模块将保持导入状态,因为它们被sys.modules
;引用。随后的导入将重用已经导入的模块对象。您只是在当前的全局名称空间中没有对它们的引用。
我对Clojure和函数式编程很陌生,我试图使用两个函数将一些字符连接到一个字符串中。我的想法基本上是这样的: 因此,我的想法是从函数send开始,并作为参数编写一个字符列表,如下所示: 带有get sent的receive函数一次发送一个字符,并使用str将它们添加到一起,我的最终输出是:“hello”。 当我尝试运行代码时,会出现以下错误:automata处的执行错误(ClassCastExc
这是我的代码:
问题内容: 在使用Jenkins Docker插件时,可能由于错误而导致无法启动群集。我没有注意,目前有数千个脱机节点无法启动。 底线-是否可以批量删除Jenkin中的节点(从属),清理所有脱机节点甚至删除所有节点?重置Jenkins服务器没有帮助,而且我在Jenkins API中找不到方法。 在我开始编写Selenium脚本之类的东西之前,请感谢任何想法。 非常感谢! 问题答案: 该脚本的注释部
问题内容: 众所周知,Java总是在创建时初始化数组。即总是返回一个所有元素= 0的数组。我知道这对于对象数组是必须的,但是对于原始数组(可能是布尔型),在大多数情况下,我们并不关心初始值。 有人知道避免这种初始化的方法吗? 问题答案: 我已经做了一些调查。没有合法的方法在Java中创建未初始化的数组。甚至JNI NewXxxArray也会创建初始化的数组。因此,不可能确切知道数组清零的成本。尽管
问题内容: 上面的问题是参考上面线程中描述的内容。有这么多的API,可以灵活地返回XML或JSON响应。我想知道是否有一种方法可以自动构造与JSON响应相对应的java bean。 问题答案: 假设您得到一个类似 你想要一个像 使用getter和setters的一种方法是使用JSONGen之类的服务,它将创建该类。您需要使用它 第一 ,并在项目中包含生成的代码。另一种选择可能是动态生成使用了Jav
我知道如何清除缓存以供查看: ,但我还需要其他东西-删除controller方法中应用程序的所有缓存。怎么做?