python學習之路(十二)
阿新 • • 發佈:2017-08-01
pack 分享 psi python 模塊 shp 詳解 階段 new from
像是現在這種寫法 它僅僅導入一個模塊
那要如果要導入很多模塊 怎麽辦? —— 逗號分隔
為防止沖突 還有一種別名導入的方式:
還可以 from module_alex import name 這種寫法
這樣子 相當於僅僅解釋了 name
如果是這樣導入 調用的時候就不用寫 module_alex 了
就直接寫 name 就可以導入了
一個一個找一遍 都找不到 就拋異常
那為了能找到 module_alex 就得先把它的父目錄 加入 sys.path 裏面
這節主要介紹一下import!很實用的調用模塊的功能。
導入模塊 是導入真實的代碼
先說模塊定義
模塊 它就是一個 py 文件 它就是負責從邏輯上 組織代碼的 代碼裏面 它可以有變量 有函數 有類 有邏輯 模塊 它不是這些東西的簡單堆砌 而是要實現功能 創建模塊 就是 new 一個 python file 定義一個模塊: 在另一個文件中 要使用這個模塊 所以要這樣來調用: 模塊名 點 變量名 模塊名 點 方法名import module_alex
print(module_alex.name)
module_alex.say_hello()
import module_alex下面就講到 import 的本質 字面就是導入一個模塊的意思 模塊說白了就是一個文件 一堆代碼 比方說 import module_alex 它的本質 就是把 module_alex 這個文件解釋了一遍 或者說 把 module_alex 這個文件運行了一遍 然後把它運行的結果 賦值給 module_alex 這個變量 那 module_alex 這一堆代碼當中 它定義了一些變量 要如果想調用這個變量 就 module_alex.name 這樣調用 要如果想調用這個方法 就 module_alex.logger 這樣調用
from module_alex import logger as logger_from_alex
def logger():
print(‘i am logger in current file‘)
logger()
logger_from_alex()
import module_alex
print(module_alex.name)
from module_alex import name補充一個點 就是寫目錄結構的時候 右鍵新建 建的是 package 建完之後發現它自動帶上一個文件 那其實 package 就是包 而包的意思就是文件夾 或者目錄 它就是以這個 __init__.py 文件為特征的 如果是模塊 它就是文件 在裏面寫代碼就 OK 了 如果是包 它就是文件夾 在裏面寫模塊就 OK 了 包 就是從邏輯上組織模塊的 導入模塊 就是 import 模塊名 或者 from 模塊名 import 變量名方法名 那導入包 也是 import 包名就 OK 了 導入包 它實際上 是在解釋包下面的 __init__() 文件 無論是導入模塊 還是導入包 都是在同級路徑下才可以導入 那如果不在同一個目錄下 怎麽導入呢? 統計目錄下沒有 就不能導入 因為它導入的時候 實際上是去找這個路徑了 按什麽找呢 按 sys.path 去找
print(name)
import sys
print(sys.path)
print(os.path.abspath(__file__))結果:
/Users/lucia_gaga/PycharmProjects/practice_lucia/bb/path.py
獲取上級:print(os.path.dirname(os.path.abspath(__file__)))結果:
/Users/lucia_gaga/PycharmProjects/practice_lucia/bb
就這樣一層一層往上找python學習之路(十二)