【发布时间】:2015-08-09 13:34:14
【问题描述】:
是否可以检查某个类是否存在?我在 json 配置文件中有类名。 我知道我可以简单地尝试通过类名字符串创建一个对象,但这实际上是一个坏主意,因为类构造函数可以做一些意想不到的事情,而此时我只想检查我的配置是否有效并且都提到了可以上课。
有什么办法吗?
编辑:我也明白你可以从某个模块中获取所有方法,在我的情况下,我不确定并且实际上并不关心该方法来自哪个模块。它可以来自任何 import 语句,我可能不知道具体来自哪里。
【问题讨论】:
-
你的意思是一个类是否被正确导入并在命名空间中可用,或者是否创建了一个具有特定名称的类的实例?
-
如果您已经导入了所有可用的对象,您可以简单地检查一下。你可以写一个
try except NameError块。如需更多信息,我们需要您的努力。 -
你可以试试
if locals().get('ClassName', False): ... -
这不是工作的一半吗?如果类存在,它是如何实例化的?