Python基礎-入門之路PYTHON-包 相對導入&絕對導入

什麼是包    包也是一種模塊,但本質上就是一個文件夾    對於使用者而言 使用方式和模塊沒有任何區別    本質上就是一個文件夾 不一樣之處在於 多了一個__init__.py 叫包的初始化文件import導入模塊時發生了三件事情1.建立名稱空間2.執行模塊py文件 加載名稱3.在執行文件產生新的名稱 指向模塊在導入包的時候 因爲包其實是一個文件夾 不能被執行 因此包中須要提供__init__.py文件該文件用於表明這個包因此上面import pack 實際上時執行了pack下的__init___.py 導入了這個名稱__init__.py文件的做用? ******    說白了就是導入該包下的全部模塊 這樣一來使用包的人 用起來很是簡單  無需關心包中的文件結構    只要導入了包 就能使用包中的全部功能__init__.py 應該包含什麼內容?    不該該包含任何的業務邏輯  僅僅用於導入包中的模塊# 絕對導入: 以執行文件的sys.path爲起始點開始導入,稱之爲絕對導入#        優勢: 執行文件與被導入的模塊中均可以使用#        缺點: 全部導入都是以sys.path爲起始點,導入麻煩from dir0.dir1 import m1 # 執行文件中只能用絕對導入m1.f1()# 相對導入: 參照當前所在文件的文件夾爲起始開始查找,稱之爲相對導入#        符號: .表明當前所在文件的文件加,..表明上一級文件夾,...表明上一級的上一級文件夾#        優勢: 導入更加簡單#        缺點: 只能在導入包中的模塊時才能使用,不能在執行文件中用#注意:    # 1. 相對導入只能用於包內部模塊之間的相互導入,導入者與被導入者都必須存在於一個包內    # 2. attempted relative import beyond top-level package # 試圖在頂級包以外使用相對導入是錯誤的,        # 言外之意,必須在頂級包內使用相對導入,每增長一個.表明跳到上一級文件夾,而上一級不該該超出頂級包
相關文章
相關標籤/搜索