單元素的元組:
(1)並不是元組,實際上是在多處重載了小括弧,比如在運算式裡,小括弧的作用是分組,(1,)這個才是單元素的元組。
模組:
import module 是將模組的名字設定為一個隱含的名字空間變數。
from module import method 匯入到當前的全部命名空間裡。
對於第二種方法並不是只有一個函數被匯入,,其實整個模組也已經被匯入。但只是那個函數的引用被儲存了起來,所以 from...import 這種文法並不能帶來效能上的差異,也沒節省什麼記憶體。
能不能重複匯入一個模組,
有兩個模組a,b 都匯入了c模組,當a匯入到b時,c是不是被匯入了兩次?
Python有匯入模組和載入模組之分,一個模組可以被匯入多次,但只會被載入一次,當python碰到一個已經被載入模組又被匯入時,他會跳過載入過程,所以無需擔心額外消耗記憶體的問題。
Package:
Package是Python在檔案系統上發布一組模組的一種方式,使用常見的點分方式來訪問子模組,每個目錄下都有一個__init__.py檔案,這告訴python解譯器這些目錄下的檔案應該被當作是一個子package而不是普通檔案。一般情況下都是空檔案,也可以做一些初始化的工作,對於點分訪問的方式可以使用別名來少打幾個字母啦。。
可改變性:
“傳引用”或“傳值”通常不適用於Python,取而代之的是對象是可變的還是不可變的 。可改變性指的是一個對象的值是否改變。整數和字串以及元組是不可變的,列表、字典、類、類執行個體等是可變的。
對方法調用的影響:如果調用的函數有任何可變對象,通常是直接修改的,直接修改其資料結構而不是返回一個修改後對象的拷貝,
複製對象和可變性:
不可變對象是被複製的,可變對象是複製了一個對他們的引用。
複製又分為淺拷貝和深拷貝,淺拷貝只複製了一個對可變對象的引用。
建構函式VS 初始化程式:
python和傳統OOP語言的一個區別是它沒有顯式的建構函式的概念,python裡沒有new關鍵字因為我們並沒有真的執行個體化你的類。python會在建立執行個體並調用初始化程式。__init__方法。
執行個體的屬性是可以動態分配的,即使是在類定義已經完成甚至建立執行個體以後,可以在運行時動態建立屬性。