單元素的元組:
(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__方法。
執行個體的屬性是可以動态配置設定的,即使是在類定義已經完成甚至建立執行個體以後,可以在運作時動态的建立屬性。
本文轉自 位鵬飛 51CTO部落格,原文連結:http://blog.51cto.com/weipengfei/1131453,如需轉載請自行聯系原作者