Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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_Constructor_Built In - Fatal编程技术网

Python 使用字符串访问内置类

Python 使用字符串访问内置类,python,python-3.x,constructor,built-in,Python,Python 3.x,Constructor,Built In,我想使用字符串从Python中检索内置类。通过尝试/错误,我找到了实现它的方法: >>> __builtins__.__dict__['str'] <class 'str'> >>> __builtins__.__dict__['int'] <class 'int'> >>>\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu >

我想使用字符串从Python中检索内置类。通过尝试/错误,我找到了实现它的方法:

>>> __builtins__.__dict__['str']
<class 'str'>
>>> __builtins__.__dict__['int']
<class 'int'>
>>>\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
>>>内置的
有没有更像蟒蛇的方法?有更安全的方法吗?

最好是通过,而不是抓住一个模块
\uuuuu dict\uuuu
。抓住灌篮者通常不是最好的主意,因为他们可能会改变;这就是为什么像
vars
这样的内置函数随处可见;它去抓取你提供的对象的字典

因此,不是:

>>> __builtins__.__dict__['str']
使用:

具有相同的效果,同时也更安全、更易读。

最好完成,不要抓取模块
\uuuu dict\uuuu
。抓住灌篮者通常不是最好的主意,因为他们可能会改变;这就是为什么像
vars
这样的内置函数随处可见;它去抓取你提供的对象的字典

因此,不是:

>>> __builtins__.__dict__['str']
使用:


使用Python的内置函数可以避免引用任何带有双下划线名称的内容(并且由于字符串来自可信源,因此安全):

win32上的Python 3.5.2(v3.5.2:4DEF2A2901A52016年6月25日22:01:18)[MSC v.1900 32位(英特尔)] 有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。 当前目录:“C:\vols\Files\PythonLib\Stack Overflow” >>>eval('str') >>>求值('int')
您可以使用Python的内置函数,该函数将避免引用任何带有双下划线名称的内容(并且是安全的,因为字符串来自受信任的源):

win32上的Python 3.5.2(v3.5.2:4DEF2A2901A52016年6月25日22:01:18)[MSC v.1900 32位(英特尔)] 有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。 当前目录:“C:\vols\Files\PythonLib\Stack Overflow” >>>eval('str') >>>求值('int')
在编程中使用eval是否是一种安全行为?这取决于所评估字符串的来源。无论如何,您可以通过为其提供自定义全局字典来减少所能做的事情,该字典将限制所计算表达式可以使用的内置内容(如果有)。使用eval在编程中是安全行为吗?这取决于所计算字符串的源。无论如何,您可以通过为其提供一个自定义全局字典来减轻所能做的事情,该字典将限制所计算表达式可以使用的内置内容(如果有的话)。