1. 程式人生 > >python基礎注意點(三)

python基礎注意點(三)

類(Class): 用來描述具有相同的屬性和方法的物件的集合。它定義了該集合中每個物件所共有的屬性和方法。物件是類的例項。

方法:類中定義的函式。

類變數:類變數在整個例項化的物件中是公用的。類變數定義在類中且在函式體之外。類變數通常不作為例項變數使用。

資料成員:類變數或者例項變數用於處理類及其例項物件的相關的資料。

方法重寫:如果從父類繼承的方法不能滿足子類的需求,可以對其進行改寫,這個過程叫方法的覆蓋(override),也稱為方法的重寫。

例項變數:定義在方法中的變數,只作用於當前例項的類。

繼承:即一個派生類(derived class)繼承基類(base class)的欄位和方法。繼承也允許把一個派生類的物件作為一個基類物件對待。例如,有這樣一個設計:一個Dog型別的物件派生自Animal類,這是模擬"是一個(is-a)"關係(例圖,Dog是一個Animal)。

例項化:建立一個類的例項,類的具體物件。

物件:通過類定義的資料結構例項。物件包括兩個資料成員(類變數和例項變數)和方法。

 

self代表類的例項,而非類

類的方法與普通的函式只有一個特別的區別——它們必須有一個額外的第一個引數名稱, 按照慣例它的名稱是 self。self 不是 python 關鍵字

在類地內部,使用 def 關鍵字來定義一個方法,與一般函式定義不同,類方法必須包含引數 self, 且為第一個引數,self 代表的是類的例項。

class DerivedClassName(BaseClassName1):

    <statement-1>

    .

    .

    .

<statement-N>

方法名同,預設呼叫的是在括號中排前地父類的方法

super() 函式是用於呼叫父類(超類)的一個方法。

__private_attrs:兩個下劃線開頭,宣告該屬性為私有,不能在類地外部被使用或直接訪問。在類內部的方法中使用時 self.__private_attrs。

__private_method:兩個下劃線開頭,宣告該方法為私有方法,只能在類的內部呼叫 ,不能在類地外部呼叫。self.__private_methods。

類的專有方法:

__init__ : 建構函式,在生成物件時呼叫

__del__ : 解構函式,釋放物件時使用

__repr__ : 列印,轉換

__setitem__ : 按照索引賦值

__getitem__: 按照索引獲取值

__len__: 獲得長度

__cmp__: 比較運算

__call__: 函式呼叫

__add__: 加運算

__sub__: 減運算

__mul__: 乘運算

__div__: 除運算

__mod__: 求餘運算

__pow__: 乘方

Python同樣支援運算子過載,我們可以對類的專有方法進行過載

os.getcwd()      # 返回當前的工作目錄

glob模組提供了一個函式用於從目錄萬用字元搜尋中生成檔案列表:

>>> import glob

>>> glob.glob('*.py')

['primes.py', 'random.py', 'quote.py']

有幾個模組用於訪問網際網路以及處理網路通訊協議。其中最簡單的兩個是用於處理從 urls 接收的資料的 urllib.request 以及用於傳送電子郵件的 smtplib:

datetime模組為日期和時間處理同時提供了簡單和複雜的方法。

支援日期和時間演算法的同時,實現的重點放在更有效的處理和格式化輸出。

該模組還支援時區處理:

多執行緒類似於同時執行多個不同程式,多執行緒執行有如下優點:

使用執行緒可以把佔據長時間的程式中的任務放到後臺去處理。

使用者介面可以更加吸引人,這樣比如使用者點選了一個按鈕去觸發某些事件的處理,可以彈出一個進度條來顯示處理的進度

程式的執行速度可能加快

在一些等待的任務實現上如使用者輸入、檔案讀寫和網路收發資料等,執行緒就比較有用了。在這種情況下我們可以釋放一些珍貴的資源如記憶體佔用等等。

執行緒在執行過程中與程序還是有區別的。每個獨立的執行緒有一個程式執行的入口、順序執行序列和程式的出口。但是執行緒不能夠獨立執行,必須依存在應用程式中,由應用程式提供多個執行緒執行控制。

每個執行緒都有他自己的一組CPU暫存器,稱為執行緒的上下文,該上下文反映了執行緒上次執行該執行緒的CPU暫存器的狀態。

指令指標和堆疊指標暫存器是執行緒上下文中兩個最重要的暫存器,執行緒總是在程序得到上下文中執行的,這些地址都用於標誌擁有執行緒的程序地址空間中的記憶體。

執行緒可以被搶佔(中斷)。

在其他執行緒正在執行時,執行緒可以暫時擱置(也稱為睡眠) -- 這就是執行緒的退讓。

執行緒可以分為:

核心執行緒:由作業系統核心建立和撤銷。

使用者執行緒:不需要核心支援而在使用者程式中實現的執行緒。

Python3 執行緒中常用的兩個模組為:

_thread

threading(推薦使用)

thread 模組已被廢棄。使用者可以使用 threading 模組代替。所以,在 Python3 中不能再使用"thread" 模組。為了相容性,Python3 將 thread 重新命名為 "_thread"。