类的定义和使用
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關鍵字,class后面緊接著類名。如示例中的MyClass,類名通常是大寫開頭的單詞;緊接著是(object),表示該類是從哪個類繼承下來的。通常,如果沒有合適的繼承類,就使用object類,這是所有類最終都會繼承的類。類包含屬性(相當于函數中的語句)和方法(類中的方法大體可以理解成前面學的函數)。
#在類中定義方法的形式和函數差不多,但不稱為函數,而稱為方法。方法的調用需要綁定到特定對象上,而函數不需要。我們后面會逐步接觸方法的調用方式。
2、類的使用
#前面已經了解了類的定義,現在以上面的那個例子為例,保存并執行:
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('調用類的屬性:',use_class.i) #print('調用類的屬性:',MyClass.i)
12 print('調用類的方法:',use_class.f())
#執行結果如下:
1 ============== RESTART: C:/Users/DL He/Desktop/Class_test_1.py ============== 2 調用類的屬性: 123 3 調用類的方法: hello world
#由輸入代碼的調用方式可知,類的使用比函數調用多了幾個操作,調用類時需要執行如下操作:
1 use_class=MyClass()
#這步叫作類的實例化,即創建一個類的實例。此處得到的use_class變量稱為類的具體對象。再看看后面兩行的調用:
1 print('調用類的屬性:',use_class.i)
2 print('調用累的方法:',use_class.f())
#這里第一行后的use_class.i用于調用類的屬性,也就是前面所說的類變量。第二行后的use_class.f()用于調用類的方法。
#在上面的示例中,在類中定義f()方法時帶了一個self參數,該參數在方法中并沒有被調用,是否可以不要呢?調用f()方法時沒有傳遞參數,是否表示參數可以傳遞也可以部傳遞?
#對于在類中定義方法的要求:在類中定義方法時,第一個參數必須是self。除了第一個參數外,類的方法和普通函數沒什么區別,如可以用默認參數、可變參數、關鍵字參數和命名關鍵字參數等。
#對于在類中調用方法的要求:要調用一個方法,在實例變量上直接調用即可。除了self不用傳遞,其他參數正常傳入。
#類對象支持兩種操作,即屬性引用和實例化。屬性引用的標準語法如下:
1 obj,name
#語法中obj代表類對象,name代表屬性。
總結
- 上一篇: 部队的副班长是什么职位?
- 下一篇: 原创:使用脚本获取本机IP地址