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

首頁 > 編程 > Python > 正文

Python中使用異常處理來判斷運行的操作系統(tǒng)平臺方法

2020-02-23 06:21:07
字體:
來源:轉載
供稿:網(wǎng)友

代碼實例:
代碼如下:
try:
    import termios, TERMIOS               1
except 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 獨有的一個模塊,它提供了對于輸入終端的底層控制。如果這個模塊無效 (因為它不在你的系統(tǒng)上,或你的系統(tǒng)不支持它),則導入失敗,Python 引發(fā)我們捕捉的 ImportError 異常。

2:OK,我們沒有 termios,所以讓我們試試 msvcrt,它是 Windows 獨有的一個模塊,可以提供在 Microsoft Visual C++ 運行服務中的許多有用的函數(shù)的一個API。如果導入失敗,Python 會引發(fā)我們捕捉的 ImportError 異常。

3:如果前兩個不能工作,我們試著從 EasyDialogs 導入一個函數(shù),它是 Mac OS 獨有的一個模塊,提供了各種各樣類型的彈出對話框。再一次,如果導入失敗,Python 會引發(fā)一個我們捕捉的 ImportError 異常。

4:這些平臺特定的模塊沒有一個有效 (有可能,因為 Python 已經(jīng)移植到了許多不同的平臺上了),所以我們需要回頭使用一個缺省口令輸入函數(shù) (這個函數(shù)定義在 getpass 模塊中的別的地方)。注意我們在這里所做的:我們將函數(shù) default_getpass 賦給變量 getpass。如果你讀了官方 getpass 文檔,它會告訴你 getpass 模塊定義了一個 getpass 函數(shù)。它是這樣做的:通過綁定 getpass 到正確的函數(shù)來適應你的平臺。然后當你調用 getpass 函數(shù)時,你實際上調用了平臺特定的函數(shù),是這段代碼已經(jīng)為你設置好的。你不需要知道或關心你的代碼正運行在何種平臺上;只要調用 getpass,則它總能正確處理。

5:一個 try...except 塊可以有一條 else 子句,就像 if 語句。如果在 try 塊中沒有異常引發(fā),然后 else 子句被執(zhí)行。在本例中,那就意味著如果 from EasyDialogs import AskPassword 導入可工作,所以我們應該綁定 getpass 到 AskPassword 函數(shù)。其它每個 try...except 塊有著相似的 else 子句,當我們發(fā)現(xiàn)一個 import 可用時,就綁定 getpass 到適合的函數(shù)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 开阳县| 富顺县| 鄢陵县| 安达市| 鄂托克旗| 武鸣县| 察雅县| 台东县| 通州市| 齐河县| 红桥区| 辽阳县| 筠连县| 揭东县| 华安县| 怀仁县| 银川市| 广安市| 肥乡县| 柞水县| 江口县| 高密市| 庆云县| 东源县| 化德县| 乐亭县| 恩施市| 商南县| 久治县| 南皮县| 晋城| 青冈县| 托里县| 东乡族自治县| 大厂| 灯塔市| 宁武县| 治县。| 西安市| 迁西县| 威远县|