Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检查变量是否是python中的代码对象_Python - Fatal编程技术网

如何检查变量是否是python中的代码对象

如何检查变量是否是python中的代码对象,python,Python,我有这个密码- code_obj = compile("k=1", "<string>", "exec") code\u obj=compile(“k=1”、“exec”) 如何通过类型比较或使用isinstance检查变量是否为代码对象。您可以检查对象是否为类型的实例。CodeType: import types code_obj = compile("k=1", "<string>", "exec") if isinstance(code_obj, types.C

我有这个密码-

code_obj = compile("k=1", "<string>", "exec")
code\u obj=compile(“k=1”、“exec”)

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

您可以检查对象是否为
类型的实例。CodeType

import types
code_obj = compile("k=1", "<string>", "exec")
if isinstance(code_obj, types.CodeType):
    print('code_obj is a code object')
导入类型
代码_obj=compile(“k=1”,“exec”)
如果存在(代码对象,类型.代码类型):
打印(“代码对象是代码对象”)

演示:

由@blhsing给出的答案很好,但如果您不想导入任何新内容,以下内容也会完全相同

code\u obj=compile(“k=1”、“exec”)
代码\类=类型(编译(“,”,“执行”))
如果存在(代码对象,代码类):
打印(“代码对象是代码对象”)
为了确保他们做同样的事情

导入类型 >>>代码\类=类型(编译(“,”,“执行”)) >>>打印(types.CodeType,code\u类) 真的
因此,您可以使用
types.CodeType
type(compile(…)
作为
isinstance(…)
的参数,以正常方式使用
type
函数,
isinstance(some_object,code)
其中code是代码类,例如
code=type(compile('','exec')