2014-03-05 65 views
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'] 

爲什麼我沒有得到那個輸出?

+2

當你運行一個腳本時,你只能看到'print'調用的輸出。如果在Python控制檯中輸入'dir(sys)',則會顯示輸出,但在運行腳本時需要顯示「print」。 – Marius

+1

在交互模式下,如果語句是表達式,則解釋器執行'PRINT_EXPR'。這反過來調用'sys.displayhook'。如果表達式的值不是'None',則displayhook'將'repr'寫入'sys.stdout'並將其存儲到'builtins._'中。 – eryksun

回答

1

dir()不打印任何東西,它只是返回一個值。你想要print(dir(sys))