我在Ubuntu 16.04.2 LTS中使用Python 3.5.2,PyCharm Community Edition 2017.1.1

我是Python的初学者,我正在尝试使此代码正常工作。

a = getattr(__builtins__, 'print')


实际上,它在IDLE中工作正常,但是Pycharm无法识别内置函数。其他常见的内置函数,例如str(),int()...都可以正常工作。

我在Pycharm support中搜索解决方案。


  “设置” |“设置”中的“重新加载”按钮。 Python解释器为二进制模块(包括内置模块)重新生成框架。请尝试按它。


但是它也不起作用。我在皮查姆得到这个...

AttributeError: 'dict' object has no attribute 'print'


先感谢您。

最佳答案

您不应直接使用__builtins__,而应使用builtins模块。

在pycharm python控制台中,__builtins__充当字典,在这种情况下,您将需要通过print检索a = __builtins__['print']。相反,如果将其作为脚本运行,则__builtins__充当builtinsø模块的模块表示。在这种情况下,您将需要使用a = getattr(__builtins__, 'print')a = __builtins__.print进行操作。

但是,正如我之前所说,您不应直接使用__builtins__关键字。您应该改为:

import builtins
a = builtins.print # or getatrr(builtins, 'print') which either way you prefer


也许还要检查this answer

10-07 13:09
查看更多