python基礎知識:類,對象,模塊三者的區別

長話短說,我線代作業還沒有寫呢。

有點編程語言知識的朋友應該知道,編程語言有“面向對象”和“面向過程”兩種。

解釋一下:

面向對象技術是目前流行的系統設計開發技術,它包括面向對象分析和麵向對象程序設計。面向對象程序設計技術的提出,主要是為了解決傳統程序設計方法--結構化程序設計所不能解決的代碼重用問題。

"面向過程"(Procedure Oriented)是一種以過程為中心的編程思想。這些都是以什麼正在發生為主要目標進行編程,不同於面向對象的是誰在受影響。與面向對象明顯的不同就是封裝、繼承、類

而python就是典型面向對象的編程語言。

什麼是對象? 對象簡單的來說就是一切具體事物,比如一個杯子,它是一個對象;一個人,也是對象;一臺電腦也是一個對象。仔細想一下,每個對象,是不是都是由它的屬性和行為構成的呢? 比如一個具體的人,他是性別是男,身高180,體重60,不戴眼鏡,諸如此類,就是一個對象的屬性。而“這個人,他正在操場跑步”,他的這個動作,也就是對象的行為。

什麼是類? 類就是具有相同屬性和行為的對象的集合。 比如,每個人都有性別,身高,體重,而他們都在做不同的事情。這裡的“事情”,其實就可以看成一個容器,只是每個人的內容不同罷了。(想想人類的意思,我想大家應該能懂的)

由此對應到python中的類來看,python中,每類都有自己的“屬性”和方法,屬性就是變量,方法則是函數。而這裡的”屬性“則不能具體,因為只有對象才有自己的屬性。 估計說的有點繞,我們直接看實例:

1.python中類的定義為:

class 類名:
....

值得注意的是,這裡的類名必須是大寫字母開頭,(為了和函數做區別)

2.下面,我們給人定義一個類,每個人都有,名字,性別,年齡,所以我們可以這樣寫:

class People:
def __init__(self,name,gender,age):
self.name=name
self.gender=gender
self.age=age
def behavior(self):
print("我的名字:{} 性別:{} 年齡:{}".format(self.name,self.gender,self.age))
p=People("小徐子","女",20)
p.behavior()

_init_是一種魔法方法,它的作用是初始化實例對象p,(self函數代表p)同時將參數(也就是屬性)傳到內部。

上面代碼的運行結果是:

python基礎知識:類,對象,模塊三者的區別

現在,不知道大家有沒有對類由一個感性的認識了呢?

3.繼承

類裡面有一個很大的特點,就是能夠繼承父類。

class 類名(父類名):
....

舉個例子,上面只是對人與其他事物進行了一個分別,下面,我們對人進行細分:女人和男人。 很顯然,不管是女人還是男人,都有人的特點,而女人又有自己獨特的特點,比如:長頭髮(舉個例子而已,大家不要細究),那麼對女人這一類應該怎麼樣定義呢?

class Woman(People):
def hair(self):
print("我有長頭髮,我很美")

下面我來進行繼承操作:

p=Woman("小徐子","女",20)
p.behavior()
p.hair()

輸出結果如下:

python基礎知識:類,對象,模塊三者的區別

4.super方法

super之所以是super的原因,就在於他能夠繼承父類的初始化定義。舉個例子:

class People:
def __init__(self,name,gender,age):
self.name=name
self.gender=gender
self.age=age
def behavior(self):
print("我的名字:{} 性別:{} 年齡:{}".format(self.name,self.gender,self.age))
class Woman(People):
def __init__(self,name,gender,age,chair):
super().__init__(name,gender,age)/*super繼承*/
self.chair="長頭髮"
def hair(self):
print("我愛{}".format(self.name))
p=Woman("小徐子","女",18,"長頭髮")
p.behavior()
p.hair()

輸出如下:

python基礎知識:類,對象,模塊三者的區別


碼字有點累了,模塊的知識以後再講吧


分享到:


相關文章: