Python 使用字符串访问内置类
我想使用字符串从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 >
>>> __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在编程中是安全行为吗?这取决于所计算字符串的源。无论如何,您可以通过为其提供一个自定义全局字典来减轻所能做的事情,该字典将限制所计算表达式可以使用的内置内容(如果有的话)。