可以从Python中移除类定义吗?

3 投票
1 回答
6157 浏览
提问于 2025-04-17 08:01

有没有办法从正在运行的Python实例中移除一个类的定义呢?

我在我的C++程序里嵌入了一个Python解释器,我想根据应用程序的当前状态来添加或移除类。比如说,如果我有一个菜单结构,并且为这个菜单定义了一个对应的类,当这个菜单不显示的时候,我想把这个类移除掉。

一种可能的解决办法是把这个类放在一个模块里,然后卸载这个模块(如何卸载(重新加载)一个Python模块?),但我在想有没有更简单的方法。

1 个回答

10

在类的引用上使用 del

>>> class Example(object):
...     pass
... 
>>> Example
<class '__main__.Example'>
>>> del Example
>>> Example
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'Example' is not defined

撰写回答