Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.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_Python 3.x - Fatal编程技术网

Python 将字符串转换为类型的方法

Python 将字符串转换为类型的方法,python,python-3.x,Python,Python 3.x,我正在使用模块检索有关内存的信息 我想做的是能够按对象类型过滤结果,如下所示: objects = [o for o in objects if isinstance(o, Type)] 如果我在代码中指定了类型(例如type=str),那么这是可行的,但我也希望能够让用户写下他们想要过滤的类型。除了当我这样做时,它将被存储为一个字符串,这将给我以下信息: isinstance(test, 'int') Traceback (most recent call last): File "&l

我正在使用模块检索有关内存的信息
我想做的是能够按对象类型过滤结果,如下所示:

objects = [o for o in objects if isinstance(o, Type)]
如果我在代码中指定了类型(例如type=str),那么这是可行的,但我也希望能够让用户写下他们想要过滤的类型。除了当我这样做时,它将被存储为一个字符串,这将给我以下信息:

isinstance(test, 'int')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: isinstance() arg 2 must be a type or tuple of types
isinstance(测试'int')
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:isinstance()arg 2必须是类型或类型的元组
我的问题是,如何获取表示类型的字符串(“int”、“tuple”、“list”等),并将其转换为保存类型本身的变量,以便将其用作isinstance函数的参数

感谢您的帮助,

尝试使用:

builtin_types = {t.__name__: t for t in __builtins__.__dict__.values() if isinstance(t, type)}
objects = [o for o in objects if isinstance(o, builtin_types[Type])]

使用字典:
{'int':int,'float':float,…}
如果输入是可信的,那么您可以使用
eval
,例如
eval('tuple')
@Arn在用户输入上使用
eval
是有史以来最糟糕的想法…=>“我也希望能够要求用户写下他们想要过滤的类型”谢谢!我注意到,对于Python3,我们应该执行以下操作:导入内置的内置类型={t.\uuuuu name\uuuuuuu:t表示内置的t.\uuuuu dict\uuuuu.values(),如果是instance(t,type)}