0
我有以下的Python程序(test.py)。我與python3研究所的Ubuntu 12.04的機器上運行這個作爲目錄(SYS)在python沒有給出預期輸出
python3 test.py
import sys
dir(sys)
for i in sys.argv:
print(i)
dir()
程序的輸出是
test.py
這是對loop.I我指的這個在線圖書的輸出 Python Online Tutorial 在哪裏期望dir(sys)的輸出爲
['__displayhook__', '__doc__', '__excepthook__', '__name__', '__package__', '__s
tderr__', '__stdin__', '__stdout__', '_clear_type_cache', '_compact_freelists',
'_current_frames', '_getframe', 'api_version', 'argv', 'builtin_module_names', '
byteorder', 'call_tracing', 'callstats', 'copyright', 'displayhook', 'dllhandle'
, 'dont_write_bytecode', 'exc_info', 'excepthook', 'exec_prefix', 'executable',
'exit', 'flags', 'float_info', 'getcheckinterval', 'getdefaultencoding', 'getfil
esystemencoding', 'getprofile', 'getrecursionlimit', 'getrefcount', 'getsizeof',
'gettrace', 'getwindowsversion', 'hexversion', 'intern', 'maxsize', 'maxunicode
', 'meta_path', 'modules', 'path', 'path_hooks', 'path_importer_cache', 'platfor
m', 'prefix', 'ps1', 'ps2', 'setcheckinterval', 'setprofile', 'setrecursionlimit
', 'settrace', 'stderr', 'stdin', 'stdout', 'subversion', 'version', 'version_in
fo', 'warnoptions', 'winver']
爲什麼我沒有得到那個輸出?
當你運行一個腳本時,你只能看到'print'調用的輸出。如果在Python控制檯中輸入'dir(sys)',則會顯示輸出,但在運行腳本時需要顯示「print」。 – Marius
在交互模式下,如果語句是表達式,則解釋器執行'PRINT_EXPR'。這反過來調用'sys.displayhook'。如果表達式的值不是'None',則displayhook'將'repr'寫入'sys.stdout'並將其存儲到'builtins._'中。 – eryksun