我有此代码-

code_obj = compile("k=1", "<string>", "exec")


如何通过类型比较或使用isinstance检查变量是否为代码对象。

最佳答案

@blhsing的答案很好用,但是如果您不想导入任何新内容,则以下操作完全相同。

code_obj = compile("k=1", "<string>", "exec")
code_class = type(compile("", "<string>", "exec"))
if isinstance(code_obj, code_class):
    print("code_obj is a code object")


要确定他们做的是同一件事,

>>> import types
>>> code_class = type(compile("", "<string>", "exec"))
>>> print(types.CodeType, code_class)
True


因此,您可以使用types.CodeTypetype(compile(...))作为isinstance(...)的参数。

关于python - 如何检查变量是否是python中的代码对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55331757/

10-12 23:46