1. 程式人生 > 程式設計 >Python中sys模組功能與用法例項詳解

Python中sys模組功能與用法例項詳解

本文例項講述了Python中sys模組功能與用法。分享給大家供大家參考,具體如下:

sys-系統特定的引數和功能

該模組提供對直譯器使用或維護的一些變數的訪問,以及與直譯器強烈互動的函式。它始終可用。

sys.argv
傳遞給Python指令碼的命令列引數列表。argv[0]是指令碼名稱(依賴於作業系統,無論這是否是完整路徑名)。如果使用-c直譯器的命令列選項執行命令,argv[0]則將其設定為字串'-c'。如果沒有指令碼名稱傳遞給Python直譯器,argv[0]則為空字串。

要迴圈標準輸入或命令列上給出的檔案列表,請參閱fileinput模組。

sys.byteorder
本機位元組順序的指示符。這將具有'big'big-endian(最重要的位元組優先)平臺和'little'little-endian(最不重要的位元組優先)平臺的價值。

2.0版本中的新功能

sys.builtin_module_names
一個字串元組,給出了編譯到此Python直譯器中的所有模組的名稱。(此資訊不以任何其他方式提供 - modules.keys()僅列出匯入的模組。)

sys.call_tracing(func,args )
呼叫func(*args),同時啟用跟蹤。跟蹤狀態被儲存,然後恢復。這是從偵錯程式從檢查點呼叫,以遞迴除錯其他一些程式碼。

sys.copyright
包含與Python直譯器相關的版權的字串

sys._clear_type_cache()
清除內部型別快取。型別快取用於加速屬性和方法查詢。僅在參考洩漏除錯期間使用該函式刪除不必要的引用。

此功能僅用於內部和專門用途。

版本2.6中的新功能。

sys._current_frames()
返回一個字典,將每個執行緒的識別符號對映到呼叫該函式時該執行緒中當前活動的最頂層堆疊幀。請注意,traceback模組中的函式可以在給定這樣的幀的情況下構建呼叫堆疊。

這對於除錯死鎖是最有用的:這個函式不需要死鎖執行緒的協作,只要這些執行緒的呼叫堆疊保持死鎖,它們就會被凍結。對於非死鎖執行緒返回的幀在呼叫程式碼檢查幀時可能與該執行緒的當前活動沒有關係。

此功能僅用於內部和專門用途。

2.5版中的新功能。

sys.dllhandle

指定Python DLL控制代碼的整數。可用性:Windows。

sys.displayhook(值)
如果值不是None,則此函式sys.stdout將其列印到並儲存builtin._。

sys.displayhook呼叫在 互動式Python會話中輸入的表示式的結果。可以通過為其分配另一個單引數函式來自定義這些值的顯示sys.displayhook。

sys.dont_write_bytecode
如果這是真的,Python將不會嘗試在源模組的匯入上編寫.pyc或.pyo檔案。此值最初設定為True或 False取決於-B命令列選項和 PYTHONDONTWRITEBYTECODE 環境變數,但您可以自己設定它來控制位元組碼檔案的生成。

版本2.6中的新功能。

sys.excepthook(型別,值,回溯)
此函式打印出給定的回溯和異常sys.stderr。

當引發異常並且未被捕獲時,直譯器sys.excepthook使用三個引數呼叫 ,即異常類,異常例項和回溯物件。在互動式會話中,這發生在控制返回到提示之前; 在Python程式中,這發生在程式退出之前。可以通過為其分配另一個三引數函式來自定義此類頂級異常的處理sys.excepthook。

sys._displayhook_
sys._excepthook_
這些物件包含的原始值displayhook,並excepthook 在程式的開始。它們被儲存,以便displayhook和 excepthook情況下可以恢復他們碰巧得到破碎的物件替換。

sys.exc_info()
此函式返回三個值的元組,這些值提供有關當前正在處理的異常的資訊。返回的資訊特定於當前執行緒和當前堆疊幀。如果當前堆疊幀未處理異常,則從呼叫堆疊幀或其呼叫者獲取資訊,依此類推,直到找到正在處理異常的堆疊幀。這裡,“處理異常”被定義為“正在執行或已執行except子句。”對於任何堆疊幀,只能訪問有關最近處理的異常的資訊。

如果堆疊中的任何位置都沒有處理異常,None則返回包含三個值的元組 。否則,返回的值是。它們的含義是:type獲取正在處理的異常的異常型別(類物件); value獲取異常引數(其 關聯值或第二個引數,如果異常型別是類物件,則始終為類例項); traceback 獲取一個回溯物件(參見參考手冊),該物件在最初發生異常的位置封裝呼叫堆疊。(type,value,traceback)raise

如果exc_clear()被呼叫,則此函式將返回三個None值,直到當前執行緒中引發另一個異常或執行堆疊返回到正在處理另一個異常的幀。

警告: 將回溯返回值分配給處理異常的函式中的區域性變數將導致迴圈引用。這將阻止同一函式中的區域性變數或回溯引用的任何內容被垃圾回收。由於大多數函式不需要訪問回溯,因此最好的解決方案是使用類似的方法來僅提取異常型別和值。如果確實需要回溯,請確保在使用後刪除它(最好使用 … 語句)或呼叫本身不處理異常的函式。exctype,value = sys.exc_info()[:2]tryfinallyexc_info()


注意 從Python 2.2開始,當啟用垃圾收集並且它們變得無法訪問時,這些週期會自動回收,但是避免建立週期仍然更有效。

sys.exc_clear()
此函式清除與當前執行緒中發生的當前或最後一個異常相關的所有資訊。呼叫此函式後, exc_info()將返回三個None值,直到在當前執行緒中引發另一個異常,或者執行堆疊返回到正在處理另一個異常的幀。

僅在少數幾個不明顯的情況下才需要此功能。這些包括記錄有關最後或當前異常的資訊的日誌記錄和錯誤處理系統。此函式也可用於嘗試釋放資源並觸發物件最終化,但不保證將釋放哪些物件(如果有)。

版本2.3中的新功能。

sys.exc_type
sys.exc_value
sys.exc_traceback

從版本1.5開始不推薦使用:exc_info()改為使用。

由於它們是全域性變數,因此它們並不特定於當前執行緒,因此在多執行緒程式中它們的使用並不安全。當沒有處理異常時,exc_type設定為None,其他兩個未定義。

sys.exec_prefix
一個字串,給出了特定於站點的目錄字首,其中安裝了與平臺相關的Python檔案; 預設情況下,這也是'/usr/local'。這可以在構建時使用configure指令碼的–exec-prefix引數 進行設定。具體來說,所有配置檔案(例如 標頭檔案)都安裝在目錄中,並且安裝了 共享庫模組,其中XY 是Python的版本號。pyconfig.hexec_prefix/lib/pythonX.Y/configexec_prefix/lib/pythonX.Y/lib-dynload2.7

sys.executable
一個字串,給出Python直譯器的可執行二進位制檔案的絕對路徑,在有意義的系統上。如果Python無法檢索其可執行檔案的真實路徑,sys.executable則將為空字串或None。

sys.exit([ arg ] )
退出Python。這是通過引發SystemExit 異常來實現的,因此遵循finally語句的子句所指定的清理操作try ,並且可以攔截外層的退出嘗試。

可選引數arg可以是一個整數,給出退出狀態(預設為零)或其他型別的物件。如果它是整數,則零被認為是“成功終止”,並且任何非零值被貝殼等視為“異常終止”。大多數系統要求它在0-127範圍內,否則會產生不確定的結果。有些系統具有為特定退出程式碼指定特定含義的約定,但這些通常是不發達的; Unix程式通常使用2表示命令列語法錯誤,1表示所有其他型別的錯誤。如果傳遞了另一種型別的物件,None則相當於傳遞零,並且列印任何其他物件stderr並導致退出程式碼為1.特別是sys.exit(“some error message”) 發生錯誤時退出程式的快速方法。

由於exit()最終“only”引發了一個異常,它只會在從主執行緒呼叫時退出程序,並且異常不會被截獲。

sys.exitfunc
該值實際上不是由模組定義的,但可以由使用者(或程式)設定,以指定程式退出時的清理操作。設定時,它應該是無引數功能。直譯器退出時將呼叫此函式。這樣只能安裝一個功能; 要允許在終止時呼叫的多個函式,請使用該atexit模組。

注意 當程式被訊號殺死,檢測到Python致命內部錯誤或被呼叫時,不會呼叫exit函式os._exit()。


從版本2.4開始不推薦使用:atexit改為使用。

sys.flags
struct sequence 標誌公開命令列標誌的狀態。屬性是隻讀的。

屬性
debug -d
py3k_warning -3
division_warning -Q
division_new -Qnew
inspect -i
interactive -i
optimize -O 要麼 -OO
dont_write_bytecode -B
no_user_site -s
no_site -S
ignore_environment -E
tabcheck -t 要麼 -tt
verbose -v
unicode -U
bytes_warning -b
hash_randomization -R

版本2.6中的新功能。

在新版本2.7.3:該hash_randomization屬性。

sys.float_info
structseq儲存有關float型別的資訊。它包含有關精度和內部表示的低階資訊。這些值對應於float.h'C'程式語言的標準標頭檔案中定義的各種浮點常量; 有關詳細資訊,請參見1999 ISO / IEC C標準[C99]第5.2.4.2.2節“浮動型別的特性”。

屬性 float.h巨集 說明
epsilon DBL_EPSILON 1和最小值之間的差值大於1,可表示為浮點數
dig DBL_DIG 可以在浮點數中忠實表示的最大小數位數; 見下文
mant_dig DBL_MANT_DIG float precision:float radix 的有效位數中的基數
max DBL_MAX 最大可表示的有限浮點數
max_exp DBL_MAX_EXP 最大整數e,這radix**(e-1)是一個可表示的有限浮點數
max_10_exp DBL_MAX_10_EXP 最大整數e,使得10**e它在可表示的有限浮點範圍內
min DBL_MIN 最小正標準化浮點數
min_exp DBL_MIN_EXP 最小整數e,這radix**(e-1)是一個標準化的浮點數
min_10_exp DBL_MIN_10_EXP 最小整數e,這10**e是一個標準化的浮點數
radix FLT_RADIX 指數表示的基數
rounds FLT_ROUNDS 整數常量,表示用於算術運算的舍入模式。這反映瞭解釋器啟動時系統FLT_ROUNDS巨集的值。有關可能

該屬性sys.float_info.dig需要進一步解釋。如果 s任何字串表示具有最多sys.float_info.dig有效數字的十進位制 數字,則轉換s為float並再次返回將恢復表示相同十進位制值的字串:

>>> import sys
>>> sys.float_info.dig
15
>>> s = '3.14159265358979'  # decimal string with 15 significant digits
>>> format(float(s),'.15g') # convert to float and back -> same value
'3.14159265358979'

但對於具有多位sys.float_info.dig有效數字的字串,並非總是如此:

>>> s = '9876543211234567'  # 16 significant digits is too many!
>>> format(float(s),'.16g') # conversion changes value
'9876543211234568'

版本2.6中的新功能。

sys.float_repr_style
一個字串,指示repr()函式對浮點數的行為方式。如果字串具有值,'short'則對於有限浮點數x,repr(x)旨在生成具有該屬性的短字串。這是Python 2.7及更高版本中的常見行為。否則,其值 和行為方式與2.7之前的Python版本相同。float(repr(x)) == xfloat_repr_style'legacy'repr(x)

版本2.7中的新功能。

sys.getcheckinterval()
返回口譯員的“檢查間隔”; 看setcheckinterval()。

版本2.3中的新功能。

sys.getdefaultencoding()
返回Unicode實現使用的當前預設字串編碼的名稱。

2.0版中的新功能。

sys.getdlopenflags()
返回用於dlopen()呼叫的標誌的當前值。標誌常量在dl和DLFCN模組中定義。可用性:Unix。

版本2.2中的新功能。

sys.getfilesystemencoding()
返回用於將Unicode檔名轉換為系統檔名的None編碼名稱,或者是否使用系統預設編碼。結果值取決於作業系統:

在Mac OS X上,編碼是'utf-8'。
在Unix上,根據nl_langinfo(CODESET)的結果,或者None如果nl_langinfo(CODESET) 失敗,編碼是使用者的首選項。
在Windows NT +上,檔名本身是Unicode,因此不執行任何轉換。getfilesystemencoding()仍然返回'mbcs',因為這是應用程式在明確要將Unicode字串轉換為用作檔名時等效的位元組字串時應使用的編碼。
在Windows 9x上,編碼是'mbcs'。
版本2.3中的新功能。

sys.getrefcount(物件
返回物件的引用計數。返回的計數通常比您預期的高一個,因為它包含(臨時)引用作為引數getrefcount()。

sys.getrecursionlimit()
返回遞迴限制的當前值,即Python直譯器堆疊的最大深度。此限制可防止無限遞迴導致C堆疊溢位並導致Python崩潰。它可以設定 setrecursionlimit()。

sys.getsizeof(物件[,預設] )
以位元組為單位返回物件的大小。物件可以是任何型別的物件。所有內建物件都將返回正確的結果,但這不一定適用於第三方擴充套件,因為它是特定於實現的。

如果給定,則如果物件未提供檢索大小的方法,則將返回default。否則TypeError將被提出。

getsizeof()sizeof如果物件由垃圾收集器管理,則呼叫該物件的方法並新增額外的垃圾收集器開銷。

版本2.6中的新功能。

sys._getframe([ 深度] )
從呼叫堆疊返回一個框架物件。如果給出了可選的整數深度,則返回堆疊頂部下方多次呼叫的幀物件。如果它比呼叫堆疊更深,ValueError則引發。深度的預設值為零,返回呼叫堆疊頂部的幀。

CPython實現細節:此函式僅用於內部和專用目的。並不保證在Python的所有實現中都存在。

sys.getprofile()
獲取設定的探查器功能setprofile()。

版本2.6中的新功能。

sys.gettrace()
獲取設定的跟蹤功能settrace()。

CPython實現細節:該gettrace()函式僅用於實現偵錯程式,分析器,覆蓋工具等。它的行為是實現平臺的一部分,而不是語言定義的一部分,因此可能並非在所有Python實現中都可用。

版本2.6中的新功能。

sys.getwindowsversion()
返回一個描述當前正在執行的Windows版本的命名元組。命名元素是major,minor, build,platform,service_pack,service_pack_minor, service_pack_major,suite_mask和product_type。 service_pack包含一個字串,而所有其他值都是整數。元件也可以通過名稱訪問,因此 sys.getwindowsversion()[0]相當於 sys.getwindowsversion().major。為了與先前版本相容,只能通過索引檢索前5個元素。

平臺可能是以下值之一:

不變 平臺
0 (VER_PLATFORM_WIN32s) Windows 3.1上的Win32s
1 (VER_PLATFORM_WIN32_WINDOWS) Windows 95/98 / ME
2 (VER_PLATFORM_WIN32_NT) Windows NT / 2000 / XP / x64
3 (VER_PLATFORM_WIN32_CE) Windows CE

product_type可能是以下值之一:

不變 含義
1 (VER_NT_WORKSTATION) 該系統是一個工作站。
2 (VER_NT_DOMAIN_CONTROLLER) 該系統是域控制器。
3 (VER_NT_SERVER) 系統是伺服器,但不是域控制器。

這個函式包裝了Win32 GetVersionEx()函式; OSVERSIONINFOEX()有關這些欄位的詳細資訊,請參閱Microsoft文件。

可用性:Windows。

版本2.3中的新功能。

在2.7版中更改:更改為命名元組並添加了service_pack_minor, service_pack_major,suite_mask和product_type。

sys.hexversion
版本號編碼為單個整數。每個版本都保證會增加,包括對非生產版本的適當支援。例如,要測試Python直譯器至少是1.5.2版,請使用:

if sys.hexversion >= 0x010502F0:
  # use some advanced feature
  ...
else:
  # use an alternative implementation or warn the user
  ...

這被呼叫,hexversion因為它只是在將其作為將其傳遞給內建hex()函式的結果時才真正看起來有意義。該 version_info值可以用於對人工友好的相同資訊的編碼。

這hexversion是一個32位數字,具有以下佈局:

位元(大端序) 含義
1-8 PY_MAJOR_VERSION (2在 2.1.0a3)
9-16 PY_MINOR_VERSION (1在 2.1.0a3)
17-24 PY_MICRO_VERSION (0在 2.1.0a3)
25-28 PY_RELEASE_LEVEL (0xA用於alpha, 0xB用於beta,0xC用於候選釋出版和0xF最終版)
29-32 PY_RELEASE_SERIAL (在3中 2.1.0a3,零為最終釋放)

因此2.1.0a3是hexversion 0x020100a3。

1.5.2版中的新功能。

sys.long_info
一個結構序列,包含有關Python內部整數表示的資訊。屬性是隻讀的。

屬性 說明
bits_per_digit 每個數字中保持的位數。Python整數儲存在base的內部 2**long_info.bits_per_digit
sizeof_digit 用於表示數字的C型別的位元組大小

版本2.7中的新功能。

sys.last_type
sys.last_value
sys.last_traceback
這三個變數並不總是定義的; 它們在未處理異常時設定,並且直譯器列印錯誤訊息和堆疊回溯。它們的用途是允許互動式使用者匯入偵錯程式模組並進行事後除錯,而無需重新執行導致錯誤的命令。(典型用法是進入事後偵錯程式; 有關詳細資訊,請參閱pdb一章- Python偵錯程式。)import pdb; pdb.pm()

變數的含義與exc_info()上面的返回值相同 。(由於只有一個互動式執行緒,因此執行緒安全性不是這些變數的關注點,不像exc_type 等等)

sys.maxint
Python常規整數型別支援的最大正整數。這至少是2 ** 31-1。最大的負整數是-maxint-1- 使用2的補碼二進位制演算法產生的不對稱性。

sys.maxsize
平臺的Py_ssize_t型別支援的最大正整數,因此最大大小的列表,字串,dicts和許多其他容器都可以。

sys.maxunicode
一個整數,表示Unicode字元支援的最大程式碼點。其值取決於配置選項,該選項指定Unicode字元是儲存為UCS-2還是UCS-4。

sys.meta_path
呼叫其方法的finder物件列表,find_module()以檢視其中一個物件是否可以找到要匯入的模組。find_module()至少使用要匯入的模組的絕對名稱呼叫該方法。如果要匯入的模組包含在包中,則父包的path屬性作為第二個引數傳入。None如果找不到模組,則返回該方法,否則返回載入器。

sys.meta_path在任何隱式預設查詢器或之前搜尋 sys.path。

看到 PEP 302用於原始規範。

sys.modules
這是一個將模組名稱對映到已載入的模組的字典。這可以被操縱以強制重新載入模組和其他技巧。注意,從本字典移除模組是不與呼叫 reload()相應的模組物件上。

sys.path
一個字串列表,指定模組的搜尋路徑。從環境變數初始化PYTHONPATH,加上依賴於安裝的預設值。

在程式啟動時初始化時,此列表的第一項path[0]是包含用於呼叫Python直譯器的指令碼的目錄。如果指令碼目錄不可用(例如,如果以互動方式呼叫直譯器或者從標準輸入讀取指令碼), path[0]則是空字串,它指示Python首先搜尋當前目錄中的模組。請注意,指令碼目錄是在插入 條目之前插入的PYTHONPATH。

程式可以自行修改此列表。

在版本2.3中更改:不再忽略Unicode字串。

sys.path_hooks
一個callables列表,它採用path引數來嘗試為路徑建立 finder。如果可以建立一個查詢程式,它將由callable返回,否則加註ImportError。

最初指定於 PEP 302。

sys.path_importer_cache
充當查詢程式物件快取的字典。鍵是已傳遞到的路徑,sys.path_hooks值是找到的查詢程式。如果路徑是有效的檔案系統路徑但未找到顯式查詢器,sys.path_hooks則None儲存表示應使用隱式預設查詢器。如果路徑不是現有路徑,則imp.NullImporter設定。

最初指定於 PEP 302。

sys.platform
例如,該字串包含一個平臺識別符號,可用於附加特定於平臺的元件sys.path。

對於大多數Unix系統,這是由附加返回的版本的第一部分返回的小寫OS名稱,例如,在構建Python時。除非您要測試特定的系統版本,否則建議使用以下習慣用法:uname -suname -r'sunos5'

if sys.platform.startswith('freebsd'):
  # FreeBSD-specific code here...
elif sys.platform.startswith('linux'):
  # Linux-specific code here...

版本2.7.3中更改:由於大量程式碼檢查,並且Linux 2.x和3.x之間沒有必要的更改,因此即使在Linux 3.x上也始終設定為。在Python 3.3及更高版本中,該值將始終設定為,因此建議始終使用上面提到的習語。sys.platform == ‘linux2'sys.platform'linux2”linux'startswith

對於其他系統,值為:

系統 platform值
Linux(2.x 和 3.x) ‘linux2'
視窗 ‘win32'
在Windows / Cygwin的 ‘cygwin'
Mac OS X. ‘darwin'
OS / 2 ‘os2'
OS / 2 EMX ‘os2emx'
里斯科斯 ‘riscos'
AtheOS ‘atheos'

也可以看看 os.name具有更粗糙的粒度。 os.uname()提供依賴於系統的版本資訊。
該platform模組提供系統身份的詳細檢查。

sys.prefix
一個字串,給出了特定於站點的目錄字首,其中安裝了與平臺無關的Python檔案; 預設情況下,這是字串 ‘/usr/local'。這可以在構建時使用configure指令碼的–prefix 引數進行設定。Python庫模組的主要集合安裝在目錄中, 而平臺獨立的標頭檔案(所有除外)儲存在其中,其中XY是例如Python的版本號。prefix/lib/pythonX.Ypyconfig.hprefix/include/pythonX.Y2.7

sys.ps1
sys.ps2
指定直譯器的主要和輔助提示的字串。僅在直譯器處於互動模式時才定義這些。在這種情況下,它們的初始值是和。如果將非字串物件分配給任一變數,則每次直譯器準備讀取新的互動式命令時都會重新評估該變數。這可以用來實現動態提示。'>>> ”… ‘str()

sys.py3kwarning
Bool包含Python 3警告標誌的狀態。這True 是使用-3選項啟動Python 的時候。(這應該被認為是隻讀的;將其設定為不同的值對Python 3警告沒有影響。)

版本2.6中的新功能。

sys.setcheckinterval(間隔)
設定直譯器的“檢查間隔”。此整數值確定直譯器檢查週期性事物(如執行緒切換和訊號處理程式)的頻率。預設值是100,意味著每100條Python虛擬指令執行一次檢查。將其設定為更大的值可能會提高使用執行緒的程式的效能。將其設定為值<=0將檢查每個虛擬指令,從而最大限度地提高響應速度和開銷。

sys.setdefaultencoding(名字)
設定Unicode實現使用的當前預設字串編碼。如果 name與任何可用編碼不匹配,LookupError則引發。此功能僅供site模組實現使用,並在需要時由sitecustomize。一旦 site模組使用,它就會從sys模組的名稱空間中刪除。

2.0版中的新功能。

sys.setdlopenflags(n )
設定直譯器用於dlopen()呼叫的標誌,例如直譯器載入擴充套件模組時。除此之外,這將在匯入模組時啟用符號的惰性解析(如果被稱為) sys.setdlopenflags(0)。要在擴充套件模組之間共享符號,請呼叫 。標誌模組的符號名稱可以在模組中找到,也可以在模組中找到 。如果不可用,則可以使用h2py指令碼生成它 。可用性:Unix。sys.setdlopenflags(dl.RTLD_NOW | dl.RTLD_GLOBAL)dlDLFCNDLFCN/usr/include/dlfcn.h

版本2.2中的新功能。

sys.setprofile(profilefunc )
設定系統的配置檔案功能,允許您在Py​​thon中實現Python原始碼分析器。有關Python探查器的更多資訊,請參閱Python Profilers一章。系統的配置檔案函式的呼叫類似於系統的跟蹤函式(請參閱參考資料settrace()),但是它使用不同的事件進行呼叫,例如,不會為每個執行的程式碼行呼叫它(僅在呼叫和返回時呼叫它,但會報告返回事件即使設定了異常)。該函式是特定於執行緒的,但是探查器無法知道執行緒之間的上下文切換,因此在存在多個執行緒時使用它是沒有意義的。此外,它的返回值沒有使用,所以它可以簡單地返回None。

配置檔案函式應該有三個引數:frame,event和 arg。frame是當前的堆疊幀。 事件是一個字串:'call', ‘return','c_call','c_return',或'c_exception'。arg取決於事件型別。

事件具有以下含義:

'call'
  呼叫一個函式(或輸入一些其他程式碼塊)。呼叫配置檔案功能; arg是None。
'return'
  函式(或其他程式碼塊)即將返回。呼叫配置檔案功能; arg是將返回的值,或者None 事件是由引發的異常引起的。
'c_call'
  AC功能即將被呼叫。這可以是擴充套件功能或內建功能。 arg是C函式物件。
'c_return'
AC功能已返回。arg是C函式物件。
'c_exception'
AC功能引發了異常。 arg是C函式物件。

sys.setrecursionlimit(限制)
設定Python直譯器堆疊的最大深度以限制。此限制可防止無限遞迴導致C堆疊溢位並導致Python崩潰。

最高可能的限制取決於平臺。當用戶需要深度遞迴的程式和支援更高限制的平臺時,使用者可能需要設定更高的限制。這應該小心,因為太高的限制可能導致崩潰。

sys.settrace(tracefunc )
設定系統的跟蹤功能,允許您在Py​​thon中實現Python原始碼偵錯程式。該函式是特定於執行緒的; 對於支援多執行緒的偵錯程式,必須settrace()為每個正在除錯的執行緒註冊它 。

跟蹤函式應該有三個引數:frame,event和 arg。frame是當前的堆疊幀。 事件是一個字串:'call', ‘line','return'或'exception'。 arg取決於事件型別。

每當輸入新的本地範圍時,都會呼叫跟蹤函式(事件設定為'call'); 它應該返回對該範圍使用的本地跟蹤函式的引用,或者None是否應該跟蹤範圍。

本地跟蹤函式應該返回對自身的引用(或者返回另一個函式以便在該範圍內進一步跟蹤),或者None關閉該範圍內的跟蹤。

事件具有以下含義:

'call'
呼叫一個函式(或輸入一些其他程式碼塊)。呼叫全域性跟蹤函式; arg是None; 返回值指定本地跟蹤功能。
'line'
直譯器即將執行新的程式碼行或重新執行迴圈的條件。呼叫本地跟蹤功能; arg是 None; 返回值指定新的本地跟蹤功能。有關Objects/lnotab_notes.txt其工作原理的詳細說明,請參閱 。
'return'
函式(或其他程式碼塊)即將返回。呼叫本地跟蹤功能; arg是將返回的值,或者None 事件是由引發的異常引起的。跟蹤函式的返回值被忽略。
'exception'
發生了一個例外。呼叫本地跟蹤功能; arg是一個元組; 返回值指定新的本地跟蹤功能。(exception,traceback)

請注意,由於異常沿著呼叫者鏈向下傳播,因此'exception'會在每個級別生成一個 事件。

有關程式碼和框架物件的更多資訊,請參閱標準型別層次結構。

CPython實現細節:該settrace()函式僅用於實現偵錯程式,分析器,覆蓋工具等。它的行為是實現平臺的一部分,而不是語言定義的一部分,因此可能並非在所有Python實現中都可用。

sys.settscdump(on_flag )
如果on_flag為true ,則使用Pentium時間戳計數器啟用VM測量的轉儲 。如果on_flag關閉,請停用這些轉儲。只有在編譯Python時,該函式才可用–with-tsc。要了解此轉儲的輸出,請閱讀Python/ceval.cPython原始碼。

版本2.4中的新功能。

CPython實現細節:此函式與CPython實現細節密切相關,因此不太可能在其他地方實現。

sys.stdin
sys.stdout
sys.stderr
與直譯器的標準輸入,輸出和錯誤流相對應的檔案物件。 stdin用於除指令碼之外的所有直譯器輸入,但包括對input()和的呼叫raw_input()。 stdout用於輸出print和表達語句和用於提示input()和raw_input()。直譯器自己的提示和(幾乎所有)其錯誤訊息都會轉到stderr。 stdout並且 stderr不需要是內建檔案物件:任何物件都是可接受的,只要它有一個write()帶字串引數的方法即可。(改變這些物件不影響標準的由執行的處理I / O流 os.popen(),os.system()或所述exec*()的函式家族os模組。)

sys._stdin_
sys._stdout_
sys._stderr_
這些物件包含的原始值stdin,stderr並 stdout在程式的開始。它們在最終確定期間使用,無論sys.std*物件是否已被重定向,它都可用於列印到實際的標準流 。

它還可以用於將實際檔案還原到已知的工作檔案物件,以防它們被破壞的物件覆蓋。但是,執行此操作的首選方法是在替換之前顯式儲存先前的流,並還原已儲存的物件。

sys.subversion
表示Python直譯器的Subversion資訊的三元組(repo,branch,version)。repo是儲存庫的名稱'CPython'。 branch是一個表單的字串'trunk','branches/name'或 ‘tags/name'。如果直譯器是從Subversion結帳構建的,則version是輸出svnversion; 它包含修訂號(範圍),如果有本地修改,可能包含尾隨'M'。如果樹被匯出(或者svnversion不可用),那麼它是Include/patchlevel.h分支是標記的修訂版 。否則就是None。

2.5版中的新功能。

注意 Python現在使用Mercurial 開發。因此,在最近的Python 2.7 bugfix版本中,subversion 包含佔位符資訊。它在Python 3.3中被刪除。

sys.tracebacklimit
當此變數設定為整數值時,它確定發生未處理的異常時列印的最大回溯資訊級別數。預設是1000。設定為0或更小時,將抑制所有回溯資訊,並僅列印異常型別和值。

sys.version
一個字串,包含Python直譯器的版本號以及有關使用的內部版本號和編譯器的附加資訊。啟動互動式直譯器時會顯示此字串。不要從中提取版本資訊,而是使用模組version_info提供的功能 platform。

sys.api_version
此直譯器的C API版本。在除錯Python和擴充套件模組之間的版本衝突時,程式設計師可能會發現這很有用。

版本2.3中的新功能。

sys.version_info
包含版本號的五個元件的元組:major,minor, micro,releaselevel和serial。除releaselevel之外的所有值都是整數; 釋放水平'alpha','beta','candidate',或 ‘final'。version_info對應於Python 2.0版的值是。元件也可以通過名稱訪問,因此等同於 等等。(2,‘final',0)sys.version_info[0]sys.version_info.major

2.0版中的新功能。

在2.7版中更改:添加了命名元件屬性

sys.warnoptions
這是警告框架的實現細節; 不要修改此值。warnings有關警告框架的更多資訊,請參閱該模組。

sys.winver
用於在Windows平臺上形成登錄檔項的版本號。它作為字串資源1000儲存在Python DLL中。該值通常是前三個字元version。它在sys 模組中提供,用於提供資訊; 修改此值對Python使用的登錄檔項沒有影響。可用性:Windows。

更多關於Python相關內容感興趣的讀者可檢視本站專題:《Python函式使用技巧總結》、《Python面向物件程式設計入門與進階教程》、《Python資料結構與演算法教程》、《Python字串操作技巧彙總》、《Python編碼操作技巧總結》及《Python入門與進階經典教程》

希望本文所述對大家Python程式設計有所幫助。