Python課堂筆記 第7章 包、模組、函式與變數作用域
7-6 Python包與模組的名字
如果想讓普通的資料夾成為包,裡面必須包含init.py檔案,本身也是個模組,可以空著就用來資料夾是包,也可以在裡面寫程式碼,這個模組的名字就是包的名字,其他模組的名字是包名字.模組名字
7-7 import匯入模組
引用其他模組的變數需要匯入其他模組
seven包裡面有三個模組,c1.py,c2.py,init.py
c1模組:a = 2
c2模組:import c1
print(c1.a)
如果將c1從seven包移到t包(t包是seven包子包)
c2模組:import t.c1
print(t.c1.a)
也可以用as簡化字元路徑
c2模組:import t.c1 as m
print(m.a)
雖然import函式容易導致名稱空間過長問題,但是可以直接看出變數屬於哪個模組哪個包
7-8 from import匯入變數
from t.c1 import a
print(a)
用可以一次性引入所有變數
from t.c1 import
print(a)
print(b)
print(c)
如果想只匯入c1中的a,c,則使用雙下劃線all語句
c1模組:
all= ['a','c']
a = 2
c = 3
d = 4
c2模組:
from t.c1 import *
print(a)
print(b)
print(c)
或from t.c1 import a,c
7-9 init.py的用法
匯入變數過多時,一行末尾加換行,或者用()將所有變數括起來
用all= ['c1']只匯入c1模組
在t包中的init.py模組裡面引入很多系統庫,在其他模組中只要寫import t則可以實現批次匯入
7-10 包與模組的幾個常見錯誤
包和模組不會被重複匯入,無論一個模組被其他多少個模組匯入過,都只會匯入1次
避免迴圈匯入,模組c2中匯入c1,然後c1中又匯入c2
在一個模組匯入另一個模組,會執行這個模組裡面所有的程式碼
7-12 入口檔案和普通模組內建變數的區別
print('name:' +name)
print('package:' +(package or '當前模組不屬於任何包'))
print('doc:' +(doc or '當前模組沒有文件註釋'))
print('file:' +file)
一個檔案如果被當做入口檔案,則該檔案不屬於任何包,且該檔案的名字會輸出main
7-13 name的經典應用
用dir()可以顯示出當前模組所有內建變數
列印系統的內建變數
import sys
infos = dir()
print(infos)
7-14,15 相對匯入和絕對匯入
一個模組的頂級包和main.py(入口檔案)所在的層級有關
絕對路徑必須從頂級包開始
import不可以使用相對路徑匯入
相對匯入:.本級目錄 ..上一級目錄 …上上級目錄
用form import 進行相對路徑匯入
不可以引入超過頂級包的路徑
m2的頂級包是package2
m5和main.py是同一級別,main.py不屬於任何包
入口檔案不可以使用相對路徑
用python -m指令可以將入口檔案當作普通模組執行
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2524/viewspace-2799665/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python 3 學習筆記之——變數作用域、模組和包Python筆記變數
- Python 函式和變數作用域Python函式變數
- 未知領域系列:Python基礎之迴圈,條件,包,函式,模組和變數作用域Python函式變數
- Python入門(十八):變數作用域與巢狀函式Python變數巢狀函式
- 函式(三)作用域之變數作用域、函式巢狀中區域性函式作用域、預設值引數作用域函式變數巢狀
- javascript基礎(函式與方法的區別,變數作用域,變數和函式的宣告提前,函式作用域)(十五)JavaScript函式變數
- python學習筆記:第10天 函式進階和作用域Python筆記函式
- python變數與變數作用域Python變數
- Python函式引數傳遞以及變數作用域Python函式變數
- 第 8 節:函式-函式型別與作用域函式型別
- Python入門第7課——tuple變數(只讀課堂)Python變數
- javascript變數物件函式呼叫棧作用域閉包等細解!JavaScript變數物件函式
- 變數、作用域與記憶體變數記憶體
- 函式與作用域函式
- 十二、變數作用域:區域性變數、全域性變數,函式版名片管理系統—新增函式文件變數函式
- Python入門第5課——字串變數初級(只讀課堂)Python字串變數
- 『無為則無心』Python函式 — 30、Python變數的作用域Python函式變數
- 變數的作用域--js閉包變數JS
- golang常用手冊:陣列、變數作用域、函式Golang陣列變數函式
- 前端筆記之JavaScript(四)關於函式、作用域、閉包那點事前端筆記JavaScript函式
- 第4章 變數、作用域和記憶體問題變數記憶體
- 變數物件與作用域鏈變數物件
- javascript函式讀取變數作用域簡單介紹JavaScript函式變數
- python函式作用域簡介Python函式
- 課堂筆記4筆記
- Python檢視模組(變數、函式、類)方法Python變數函式
- 迴圈輸出——閉包、變數作用域變數
- 變數作用域變數
- 函數語言程式設計3-作用域與閉包函數程式設計
- Erlang學習筆記(四)模組與函式筆記函式
- 原型模式故事鏈(5)--JS變數作用域、作用域鏈、閉包原型模式JS變數
- Python學習筆記 - 作用域Python筆記
- Python中以函式為作用域Python函式
- Python零基礎學習筆記(二十六)——變數的作用域Python筆記變數
- Python學習筆記_函式_匯入模組Python筆記函式
- hadoop課堂筆記Hadoop筆記
- Java static變數、作用域、建構函式初始化順序Java變數函式
- 給妹子講python-S01E19解析Python內嵌作用域與函式閉包Python函式