国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Python:使用異常處理來判斷運行的平臺

2019-11-14 17:40:51
字體:
來源:轉載
供稿:網友

 

try:    import termios, TERMIOS               1except ImportError:    try:        import msvcrt                  2    except ImportError:        try:            from EasyDialogs import AskPassWord   3        except ImportError:            getpass = "default_getpass"        4        else:            getpass = "AskPassword"          5    else:        getpass = "win_getpass"else:    getpass = "unix_getpass"

1:termios 是 UNIX 獨有的一個模塊,它提供了對于輸入終端的底層控制。如果這個模塊無效 (因為它不在你的系統上,或你的系統不支持它),則導入失敗,Python 引發我們捕捉的 ImportError 異常。
2:OK,我們沒有 termios,所以讓我們試試 msvcrt,它是 Windows 獨有的一個模塊,可以提供在 Microsoft Visual C++ 運行服務中的許多有用的函數的一個API。如果導入失敗,Python 會引發我們捕捉的 ImportError 異常。
3:如果前兩個不能工作,我們試著從 EasyDialogs 導入一個函數,它是 Mac OS 獨有的一個模塊,提供了各種各樣類型的彈出對話框。再一次,如果導入失敗,Python 會引發一個我們捕捉的 ImportError 異常。
4:這些平臺特定的模塊沒有一個有效 (有可能,因為 Python 已經移植到了許多不同的平臺上了),所以我們需要回頭使用一個缺省口令輸入函數 (這個函數定義在 getpass 模塊中的別的地方)。注意我們在這里所做的:我們將函數 default_getpass 賦給變量 getpass。如果你讀了官方 getpass 文檔,它會告訴你 getpass 模塊定義了一個 getpass 函數。它是這樣做的:通過綁定 getpass 到正確的函數來適應你的平臺。然后當你調用 getpass 函數時,你實際上調用了平臺特定的函數,是這段代碼已經為你設置好的。你不需要知道或關心你的代碼正運行在何種平臺上;只要調用 getpass,則它總能正確處理。
5:一個 try...except 塊可以有一條 else 子句,就像 if 語句。如果在 try 塊中沒有異常引發,然后 else 子句被執行。在本例中,那就意味著如果 from EasyDialogs import AskPassword 導入可工作,所以我們應該綁定 getpass 到 AskPassword 函數。其它每個 try...except 塊有著相似的 else 子句,當我們發現一個 import 可用時,就綁定 getpass 到適合的函數。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 璧山县| 德江县| 孟津县| 宽城| 汕头市| 山阴县| 宁海县| 梨树县| 股票| 唐海县| 青岛市| 桦南县| 桂林市| 河西区| 广元市| 阳江市| 屏东县| 长葛市| 阳高县| 胶南市| 仪陇县| 南皮县| 葫芦岛市| 台南市| 镇巴县| 崇左市| 平原县| 崇阳县| 湘乡市| 牡丹江市| 久治县| 黔东| 武强县| 易门县| 婺源县| 外汇| 玉田县| 临猗县| 泽普县| 临猗县| 崇礼县|