在生活中,我們走在路邊,看到一輛車,大腦中首先想到的是「這是一輛車,
然後才是這是一輛什麼牌子的車」,在這裡,我們就用到了程式設計中的類的概念。
同樣的,看到一條小狗,也會先想到這是一條狗,然後會想到這是一條什麼品種的狗。
在程式設計中,把同一類的事物叫做類,把這個類裡所共有的特徵總結歸納並定義出來,就是類的屬性;
把這個類能會做什麼事,能做什麼事總結歸納並定義出來就是類的技能。
舉個例子:
我想定義乙個人的類,在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學習 初識類與物件
python中類和物件的概念 python中的函式和普通函式的對比 python類語法的初識 一 python中類和物件的概念 我們把一類相同的事物叫做類,其中用相同的屬性 其實就是變數 描述,裡面封裝了相同的方法。比如,汽車是乙個類,它包括 品牌等屬性。倘若要實現列印100種車的屬性的功能,那麼可...
C 初識類與物件
在c 中,結構體不僅可以定義變數時也可以定義函式。同樣的結構體c 中,將會用class代替struct class student 類的兩中定義方式 1.宣告和定義都在類體中 class student private int age char name 20 char gender 3 2.宣告放...
Python中的類與物件
class 類名 類內容 包括屬性 函式 是指不需要建立類物件例項,就可以呼叫的函式 在函式前加 classmethod標識 class student name hx age 12 classmethod def classmethod cls print hi classmethod 通過類名直...