类的定义和使用
1、類的定義
#先來看一個類的示例:
1 #! /usr/bin/python3 2 #-*-coding:UTF-8 -*- 3 #Class_test 4 5 class MyClass(object): 6 i=123 7 def f(self): 8 return 'hello world'
#由上面的代碼可以得知,類定于的語法格式如下:
1 class ClassName(object): 2 <statement-1> 3 . 4 . 5 . 6 <statement-N>
#由代碼片段和類定義我們看到,Python中定義類使用class關(guān)鍵字,class后面緊接著類名。如示例中的MyClass,類名通常是大寫開頭的單詞;緊接著是(object),表示該類是從哪個類繼承下來的。通常,如果沒有合適的繼承類,就使用object類,這是所有類最終都會繼承的類。類包含屬性(相當(dāng)于函數(shù)中的語句)和方法(類中的方法大體可以理解成前面學(xué)的函數(shù))。
#在類中定義方法的形式和函數(shù)差不多,但不稱為函數(shù),而稱為方法。方法的調(diào)用需要綁定到特定對象上,而函數(shù)不需要。我們后面會逐步接觸方法的調(diào)用方式。
2、類的使用
#前面已經(jīng)了解了類的定義,現(xiàn)在以上面的那個例子為例,保存并執(zhí)行:
1 #! /usr/bin/python3
2 #-*-coding:UTF-8 -*-
3 #Class_test
4
5 class MyClass(object):
6 i=123
7 def f(self):
8 return 'hello world'
9
10 use_class=MyClass()
11 print('調(diào)用類的屬性:',use_class.i) #print('調(diào)用類的屬性:',MyClass.i)
12 print('調(diào)用類的方法:',use_class.f())
#執(zhí)行結(jié)果如下:
1 ============== RESTART: C:/Users/DL He/Desktop/Class_test_1.py ============== 2 調(diào)用類的屬性: 123 3 調(diào)用類的方法: hello world
#由輸入代碼的調(diào)用方式可知,類的使用比函數(shù)調(diào)用多了幾個操作,調(diào)用類時需要執(zhí)行如下操作:
1 use_class=MyClass()
#這步叫作類的實例化,即創(chuàng)建一個類的實例。此處得到的use_class變量稱為類的具體對象。再看看后面兩行的調(diào)用:
1 print('調(diào)用類的屬性:',use_class.i)
2 print('調(diào)用累的方法:',use_class.f())
#這里第一行后的use_class.i用于調(diào)用類的屬性,也就是前面所說的類變量。第二行后的use_class.f()用于調(diào)用類的方法。
#在上面的示例中,在類中定義f()方法時帶了一個self參數(shù),該參數(shù)在方法中并沒有被調(diào)用,是否可以不要呢?調(diào)用f()方法時沒有傳遞參數(shù),是否表示參數(shù)可以傳遞也可以部傳遞?
#對于在類中定義方法的要求:在類中定義方法時,第一個參數(shù)必須是self。除了第一個參數(shù)外,類的方法和普通函數(shù)沒什么區(qū)別,如可以用默認(rèn)參數(shù)、可變參數(shù)、關(guān)鍵字參數(shù)和命名關(guān)鍵字參數(shù)等。
#對于在類中調(diào)用方法的要求:要調(diào)用一個方法,在實例變量上直接調(diào)用即可。除了self不用傳遞,其他參數(shù)正常傳入。
#類對象支持兩種操作,即屬性引用和實例化。屬性引用的標(biāo)準(zhǔn)語法如下:
1 obj,name
#語法中obj代表類對象,name代表屬性。
總結(jié)
- 上一篇: 部队的副班长是什么职位?
- 下一篇: 南沙群岛位于我国哪里?