您好,登錄后才能下訂單哦!
本篇文章為大家展示了Python中什么是類與對象,代碼簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
類的概念與定義
在生活中,我們走在路邊,看到一輛車,大腦中首先想到的是“這是一輛車,然后才是這是一輛什么牌子的車”,在這里,我們就用到了編程中的類的概念。同樣的,看到一條小狗,也會先想到這是一條狗,然后會想到這是一條什么品種的狗。在編程中,把同一類的事物叫做類,把這個類里所共有的特征總結歸納并定義出來,就是類的屬性;把這個類能會做什么事,能做什么事總結歸納并定義出來就是類的技能。
舉個例子:
我想定義一個人的類,在python里面要怎么實現呢?
首先,我們會想到人都有什么共同的特征呢?人都有兩只眼睛,都有兩條腿,等等這些是每個人都有的自己的特征,
其次,每個人還都擁有自己的獨有特征,每個人的姓名都不是一樣的,每個人還都有自己的年齡,自己的性別,自己的學歷等等這些是每個人的獨有特征。
最后,人都有的技能還包括吃飯,睡覺,行走,學習等,這些是人都具有的技能。
那個現在我們這可以定義人的類,具體實現代碼如下:
class Person: """class是定義類的關鍵字,class后面的P erson是類的名字,python解釋器會把class這個關鍵字后面的名稱設定為類的名字, 類的名字默認首字母大寫。""" #定義每個人都有兩個眼睛 eye=2 #定義每個人都有兩條腿 leg=2 def __init__(self,name,age,sex,education): """定義每個人的獨有的特征,此處定義每個人都有自己的姓名,年齡,性別和學歷""" self.name=name self.age=age self.sex=sex self.education=education def eat(self): #定義人都有的吃飯的技能 print("%s is eating food"%self.name) def walk(self): #定義人都有的行走的技能 print("%s is walking slow"%self.name) def study(self): #定義人都有的學習的技能 print("%s is studying hard"%self.name)
執行上面的代碼,python解釋器會在內存中開辟出一塊內存空間,用來保存類中定義的人類的特征和技能。
在上面的代碼里,定義人類共有的特征時,相當于在人這個類的名稱空間中定義了兩個變量,定義人獨有的特征時,相當于是在人類的名稱空間里,聲明了一個名叫“初始化”的函數,在函數中存放代表了每個人獨有的特征的變量。
而接下來的三個函數則用來表示每個人都會做的動作,python解釋器同樣會為這三個函數在存放人類的名稱空間的內存中開辟三塊區域用來存放這三個函數(也可以稱之為人類共有的技能。
對象的概念與定義
在編程的世界里,定義出一個類之后,我們就可以用這個類生成一個個的人,這個過程我們也稱之為類的實例化,生成之后的人我們則稱之為對象。
現在我想用上面的程序實例化出兩個人,要怎樣實現呢??
person1=Person("jack",22,"male","college") person2=Person("lily",18,"female","middle school")
這樣我們就實例化出兩個人:
第一個人名字叫jack,22歲,性別為男,大學學歷,
第二個個名字叫lily,18歲,性別為女,中學學歷。
對象的使用
現在我們已經創建出了兩個人,現在可以調用這兩個人的特征和技能了
比如,我想知道person1的特征,可以使用如下方法:
print(person1.name) #查看person1的名字,輸出為:jack print(person1.age) #查看person1的年齡,輸出為:22 print(person1.sex) #查看person1的性別,輸出為:male print(person1.education) #查看person1的學歷,輸出為:college
查看person1的技能時:
person1.walk() #調用person1的行走的技能 會打印:jack is walking slow person1.eat() #調用person1的吃飯的技能 會打印:jack is eating food person1.study() #調用person1的學習的技能 會打印:jack is studying hard
查看person2的特征和技能時使用同樣的方法
類與對象的對比分析
print(Person.eat,person1.eat,person2.eat)
執行結果如下:
<function Person.eat at 0x0000000002951BF8> <bound method Person.eat of <__main__.Person object at 0x000000000295D240> <bound method Person.eat of <__main__.Person object at 0x000000000295D278>>
分別調用類的吃飯的方法,以及person1和person2的吃飯的方法,可以看到它們的內存地址都不一樣,同樣的,調用他們的其他的走路和學習的方法,它們各自的內存空間也都不一樣,這充分說明了它們在內存中是各自開辟了一段自己的獨有的內存空間。
上述內容就是Python中什么是類與對象,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。