python中什麼是類與物件
閱讀:84
類的概念與定義
在生活中,我們走在路邊,看到一輛車,大腦中首先想到的是「這是一輛車,然後才是這是一輛什麼牌子的車」,在這裡,我們就用到了程式設計中的類的概念。同樣的,看到一條小狗,也會先想到這是一條狗,然後會想到這是一條什麼品種的狗。在程式設計中,把同一類的事物叫做類,把這個類裡所共有的特徵總結歸納並定義出來,就是類的屬性;把這個類能會做什麼事,能做什麼事總結歸納並定義出來就是類的技能。
舉個例子:
我想定義乙個人的類,在python裡面要怎麼實現呢?
首先,我們會想到人都有什麼共同的特徵呢?人都有兩隻眼睛,都有兩條腿,等等這些是每個人都有的自己的特徵,
其次,每個人還都擁有自己的獨有特徵,每個人的姓名都不是一樣的,每個人還都有自己的年齡,自己的性別,自己的學歷等等這些是每個人的獨有特徵。
最後,人都有的技能還包括吃飯,睡覺,行走,學習等,這些是人都具有的技能。
那個現在我們這可以定義人的類,具體實現**如下:class person:
"""class是定義類的關鍵字,class後面的p erson是類的名字,python直譯器會把class這個關鍵字後面的名稱設定為類的名字,
類的名字預設首字母大寫。"""
#定義每個人都有兩個眼睛
eye=2
#定義每個人都有兩條腿
leg=2
def __init__(self,name,age,***,education):
"""定義每個人的獨有的特徵,此處定義每個人都有自己的姓名,年齡,性別和學歷"""
self.name=name
self.age=age
self.***=***
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.***) #檢視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)
執行結果如下:
分別呼叫類的吃飯的方法,以及person1和person2的吃飯的方法,可以看到它們的記憶體位址都不一樣,同樣的,呼叫他們的其他的走路和學習的方法,它們各自的記憶體空間也都不一樣,這充分說明了它們在記憶體中是各自開闢了一段自己的獨有的記憶體空間。
python中var是什麼變數 Python 變數
1.python的變數是什麼 變數是用來儲存電腦程式中的資訊,唯一的目的是將資料儲存在記憶體中。2.python變數的組成 變數由字母 數字 下劃線組成 變數的第一位不能是數字,可以是字母或下劃線 python中的關鍵字不能作為變數。python中的關鍵字 and as assert break c...
python類概念是什麼 python中類的概念
在python中,所有資料型別都可以視為物件,也可以自定義物件。自定義的物件即物件導向中的類 class 的概念。1 classstudent object 2 3 def init self,name,score 4 self.name name5 self.score score6 7 defp...
python教程是什麼 Python是什麼?
python是物件導向,高階語言,解釋,動態和多用途程式語言。python易於學習,而且功能強大,功能多樣的指令碼語言使其對應用程式開發具有吸引力。python的語法和動態型別具有其解釋性質,使其成為許多領域的指令碼編寫和快速應用程式開發的理想語言。python支援多種程式設計模式,包括物件導向程式...