我有此代码-
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.CodeType
或type(compile(...))
作为isinstance(...)
的参数。关于python - 如何检查变量是否是python中的代码对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55331757/