2017-04-14 36 views
1

我使用Python的3.5.2PyCharm社區版2017年1月1日的Ubuntu 16.04.2 LTSPycharm不承認內建

我在Python初學者,我想獲取此代碼的工作。

a = getattr(__builtins__, 'print') 

實際上它在IDLE中工作正常,但是Pycharm沒有識別出內建函數。其他常見的內建函數,如str(),int()...都很好。

我搜索在Pycharm support的解決方案。

在設置中的 「刷新」 按鈕| Python解釋器重新生成二進制模塊的框架,包括內置函數。請嘗試按下它。

但它不是工作壓力太大。我在Pycharm得到這個...

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

在此先感謝您。

回答

0

你不應該直接使用__builtins__,而是使用builtins模塊。

在pycharm python控制檯中,__builtins__充當字典,在這種情況下,您需要通過a = __builtins__['print']檢索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