Python基礎總結之初步認識---clsaa類(上)。第十四天開始(新手可相互督促)

我是大劉啊發表於2019-08-05

最近的類看著很疼,堅持就是勝利~~~

python中的類,什麼是類?類是由屬性和方法組成的。類中可能有很多屬性,以及方法。

我們這樣定義一個類:

         前面是class關鍵字 後面school是一個類的名字,在後面就是圓括號和括號裡面的object關鍵字,它是跟類,所有的類繼承它。最後記住冒號結尾。

1 class school (object):    # object就是根類,在python3中要這樣寫的固有格式吧,不在深入研究它

  建立好類後,類的內部程式碼塊,會有類的屬性和類的方法,因為類是由類的屬性和方法組成的。在呼叫某個類的屬性或方法前,我們需要先進行類的例項化物件。例項化物件的意思是:將類具體指向一個物件。比如:人,就是一個類,大千世界有很多人,所以叫人類,哈哈~~~大千世界這麼多人,我們每個人都是一個單獨的個體,所以我們單獨的某個人就是一個例項化物件,就是這個意思。

1 class school(object):  #  object就是根類
2     pass               #類中的方法和屬性我們先省略
3 
4 schoo_1 = school()     #為類例項化第一個物件,第一個類物件叫做:schoo_1
5 schoo_2 = school()     #為類例項化第二個物件

我不知道在看筆記的你是不是懂我表達的意思,如果不理解可以評論哦~~~我會根據你的不理解,在調整我的描述筆記。希望可以幫助大家輕鬆的學習。

  剛剛看到我們為school這個類,例項化了兩個物件,分別是school_1 和 school_2  也就是說大千世界人很多,我們可以為類例項化多個物件,根據名字不同,來區分是那個個體類物件。接下來我們看看兩個類在記憶體中的儲存位置是不是不一樣的,說明他們確實不是同一個物件。

1 class school(object): 
2     pass                       #類中的方法和屬性我們先省略
3 
4 schoo_1 = school()     #為類例項化第一個物件
5 schoo_2 = school()     
6 
7 print(id(schoo_1))       #我們列印每個個體類在記憶體中的位置
8 print(id(schoo_2))

 

看到它們兩個id在記憶體中佔有的不同位置了吧!

  我們再看下什麼是【類的屬性】:宣告在型別的內部,方法(def)的外部。就是類屬性,比如下面程式碼中的 gongtong 就是person類的類屬性。

1 class person(object):
2     # 類屬性
3     '''#類屬性代表:都是人,但是我們都有一個共同的點,把這些共同的功能區分出來,他們就是類屬性。'''
4     gontong = '每天都要吃飯'
5 
6     def __init__(self,name,age):        #建構函式
7 #例項屬性 8 self.name=name 9 self.age=age

那麼我們再看下,類中都帶有的一個特殊的函式:

def __init__(self):     這個函式的作用是:初始化例項屬性的值.這些值一般要供其他方法呼叫。我們看到下面程式碼中,建構函式裡面有兩個引數name和age。

self.name=name,就是將傳入的值,進行了初始化的過程。

1 class person(object):
2     # 類屬性
3 
4     gontong = '每天都要吃飯'
5 
6     def __init__(self,name,age):         #建構函式,類在進行呼叫的時候,引數都會進行初始化,即使不需要也會進行。
7         #例項屬性
8         self.name=name   #初始化例項屬性name引數
9         self.age=age     #初始化例項屬性age引數

接下來我們看下person類中的其他方法:

 1 class person(object):
 2     # 類屬性
 3     '''#類屬性代表:都是人,但是我們都有一個共同的點,把這些共同的功能區分出來,他們就是類屬性。'''
 4     gontong = '每天都要吃飯'
 5 
 6     def __init__(self,name,age):         #建構函式,類在進行呼叫的時候,引數都會進行初始化,即使不需要也會進行。
 7         #例項屬性
 8         self.name=name   #初始化例項屬性name引數
 9         self.age=age     #初始化例項屬性age引數
10 
11     def getname(self):     #該函式用於獲取name的值
12         return self.name   #將name引數的值,返回給函式呼叫方
13     def getage(self):
14         return self.age    #將age引數的值,返回給函式呼叫方
15 
16     def setname(self,name):  #對name引數重新賦值
17         self.name=name
18 
19     def setage(self,age):    #對age引數重新賦值
20         self.age=age
21 
22     def info(self):
23         return 'name:{0},age:{1},gongtong:{2}'.format(self.getname(),self.getage(),self.gontong)
24 
25 per_1 = person('liu','25')       #例項化類,呼叫類中的屬性和方法,需要先進行類例項化物件
26 print(per_1.getname(),per_1.getage())          #類的例項化物件per_1呼叫函式getname(),來獲取name引數的值;類的例項化物件per_1呼叫函式getage(),來獲取name引數的值。

在上面的per_1例項化物件,對類傳入了兩個引數  'liu' , '25'  ,這是呼叫類的第一步,先對類進行例項化物件,然後對類傳入引數。

最後一行程式碼是列印出,例項化物件呼叫類中的兩個函式,用兩個函式的方法獲取到了名字name和年齡age。

接下來我們再看下呼叫另外兩個函式的作用:

 

 1 class person(object):
 2     # 類屬性
 3     '''#類屬性代表:都是人,但是我們都有一個共同的點,把這些共同的功能區分出來,他們就是類屬性。'''
 4     gontong = '每天都要吃飯'
 5 
 6     def __init__(self,name,age):         #建構函式,類在進行呼叫的時候,引數都會進行初始化,即使不需要也會進行。
 7         #例項屬性
 8         self.name=name   #初始化例項屬性name引數
 9         self.age=age     #初始化例項屬性age引數
10 
11     def getname(self):     #該函式用於獲取name的值
12         return self.name   #將name引數的值,返回給函式呼叫方
13     def getage(self):
14         return self.age    #將age引數的值,返回給函式呼叫方
15 
16     def setname(self,name):  #對name引數重新賦值
17         self.name=name
18 
19     def setage(self,age):    #對age引數重新賦值
20         self.age=age
21 
22     def info(self):       #獲取類屬性和其他類的方法
23         return 'name:{0},age:{1},gongtong:{2}'.format(self.getname(),self.getage(),self.gontong)
24 
25 per_2 = person('xiao',66)               #例項化類,呼叫類中的屬性和方法,需要先進行類例項化物件
26 print(per_2.getname(),per_2.getage())   #類的例項化物件per_1呼叫函式getname(),來獲取name引數的值;類的例項化物件per_1呼叫函式getage(),來獲取name引數的值。
27 per_2.setname('xiaohong'),per_2.setage('12')  #呼叫類中的setname()函式,對name重新賦值;#呼叫類中的setage()函式,對age重新賦值
28 print(per_2.getname(),per_2.getage())   #再次列印,看重新賦值成功沒有
29 print(per_2.info())                    #類的例項化物件per_2,呼叫類的info()方法,獲取類屬性和其他方法

 

今天就先到這裡,筆記有點多,一天進步一點,加油~

原始碼:

 1 class person(object):
 2     # 類屬性
 3     '''#類屬性代表:都是人,但是我們都有一個共同的點,把這些共同的功能區分出來,他們就是類屬性。'''
 4     gontong = '每天都要吃飯'
 5 
 6     def __init__(self,name,age):         #建構函式,類在進行呼叫的時候,引數都會進行初始化,即使不需要也會進行。
 7         #例項屬性
 8         self.name=name   #初始化例項屬性name引數
 9         self.age=age     #初始化例項屬性age引數
10 
11     def getname(self):     #該函式用於獲取name的值
12         return self.name   #將name引數的值,返回給函式呼叫方
13     def getage(self):
14         return self.age    #將age引數的值,返回給函式呼叫方
15 
16     def setname(self,name):  #對name引數重新賦值
17         self.name=name
18 
19     def setage(self,age):    #對age引數重新賦值
20         self.age=age
21 
22     def info(self):       #獲取類屬性和其他類的方法
23         return 'name:{0},age:{1},gongtong:{2}'.format(self.getname(),self.getage(),self.gontong)
24     
25 #第一個例項化物件
26 per_1 = person('liu','25')       #例項化類,呼叫類中的屬性和方法,需要先進行類例項化物件
27 print(per_1.getname(),per_1.getage())          #類的例項化物件per_1呼叫函式getname(),來獲取name引數的值;類的例項化物件per_1呼叫函式getage(),來獲取name引數的值。
28 
29 
30 #第二個例項化物件
31 per_2 = person('xiao',66)               #例項化類,呼叫類中的屬性和方法,需要先進行類例項化物件
32 print(per_2.getname(),per_2.getage())   #類的例項化物件per_1呼叫函式getname(),來獲取name引數的值;類的例項化物件per_1呼叫函式getage(),來獲取name引數的值。
33 per_2.setname('xiaohong'),per_2.setage('12')  #呼叫類中的setname()函式,對name重新賦值;#呼叫類中的setage()函式,對age重新賦值
34 print(per_2.getname(),per_2.getage())   #再次列印,看重新賦值成功沒有
35 print(per_2.info())                    #類的例項化物件per_2,呼叫類的info()方法,獲取類屬性和其他方法

直接附上列印結果,程式碼太長,無法截全部。~~~~~

 

相關文章