我對 Python 相當陌生,但我認為我理解流控制是如何作業的。
我在第 418 行從Jython github粘貼這個
418: pkgname = globals.get('__package__')
419: if pkgname is not None:
420: if not pkgname and level > 0:
421: raise ValueError, 'Attempted relative import in non-package'
pkgname is not None第 419 行是否與not pkgname第 420 行一樣?如果是這樣,那為什么還要檢查呢?
我正在閱讀匯入源代碼,以便更好地理解系統,雖然很小,但讓我覺得很奇怪。由于我還在學習 Python,我不想把任何事情視為理所當然。
謝謝!
uj5u.com熱心網友回復:
我不知道有效值是什么,pkgname但從技術上講not pkgname可以測驗任何虛假值,例如None, , ,等。但是,False只有在dict 鍵不存在時才會回傳,所以如果意圖只是為了測驗那它確實是多余的。0[]""globals.get()Noneglobals()
旁注:想知道您為什么要通過閱讀 Jython 代碼庫來學習 python。我建議您從使用參考 CPython 實作和檔案而不是代碼庫本身開始
uj5u.com熱心網友回復:
你是正確的第二次檢查是否不需要 pkgname 所以代碼可以
418: pkgname = globals.get('__package__')
419: if pkgname is not None:
420: if level > 0:
421: raise ValueError, 'Attempted relative import in non-package'
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/440294.html
