Python物件導向程式設計(2)

2021-10-10 13:05:11 字數 3977 閱讀 3838

建立類時,如果其中的部分屬性和方法與其他已有類相同,則可使用繼承。乙個類繼承另乙個類時,將自動繼承另乙個類的所有屬性和方法(除私有屬性和方法)。原有的類稱為父類,新類稱為子類,子類繼承父類的所有屬性和方法,也可以有自己的屬性和方法,也可修改原來類中的方法。

1.1:使用super方法:

新建乙個名為student的類,它繼承person類。

#1:使用super方法

class

student

(person)

:#**中的person即父類

'''表示學生的基本資訊,繼承person類'''

def__init__

(self,name,age,university)

:super

(student,self)

.__init__(name,age)

self.university=university

defdisplay

(self)

:print

("student(姓名:{},年齡:{},所在大學:{})"

.format

(self.name,self.age,self.university)

)

注:這裡繼承了父類person(詳見前文物件導向程式設計(1))

定義子類student時,必須在括號裡指明父類。子類繼承父類的所有屬性和方法,當然也包括父類的構造方法__init__()。為繼承父類中的構造方法,這裡使用了特殊函式super(),該函式將父類和子類關聯起來。子類的構造方法中需包括父類的對應引數name、age,還需新增乙個形參university。

例項化子類,並呼叫display方法:

#例項化子類

s1=student(

"劉易行",18

,"長安大學"

)print

(s1.university)

#長安大學

#呼叫方法

s1.display(

)#student(姓名:劉易行,年齡:18,所在大學:長安大學)

1.2:重寫父類方法:

子類繼承父類的所有方法,但是根據實際需要,子類也可以修改父類方法,只要方法名不變,可修改形參及方法內容等。如student子類中重寫父類中的display()方法。

def

display

(self)

:print

("student(姓名:{},年齡:{},所在大學:{})"

.format

(self.name,self.age,self.university)

)

從上可以看出,子類可繼承父類中自己需要的部分,並增加或修改代表子類特徵的一些屬性。

#匯入模組中的student類

from class_1 import student as st

#例項化類

s2=st(

"小洪",19

,"重慶郵電大學"

)print

(s2)

#呼叫s2中的例項方法

s2.display(

)#student(姓名:小洪,年齡:19,所在大學:重慶郵電大學)

2.2:在乙個模組中匯入另乙個模組

建立名為train_class.py的主程式,存放於當前目錄下,在主程式中匯入class_1模組中的student類,具體**如下:

#匯入模組class_1中的student類

from class_1 import student as st

defmain()

: str1 =

input

("請輸入姓名"

) str2 =

input

("請輸入年齡"

) str3=

input

("請輸入大學名稱"

)#例項化st類

s1=st(str1,str2,str3)

s1.display(

)#判斷是否以主程式執行

if __name__==

'__main__'

:

main(

)

執行介面:

c:\users\lenovo\anaconda3\envs\tensorflow-gpu\python.exe "d:/tensorflow test/train_class.py"

請輸入姓名劉易行

請輸入年齡18

請輸入大學名稱長安大學

student(姓名:劉易行,年齡:

18,所在大學:長安大學)

python中有很多標準庫,這些庫都是一些模組,要使用這些庫,只要使用import或from格式把需要的庫匯入即可。這些庫中有很多類或函式等,匯入後就可以使用這些函式或類,下面列舉一些python中常用的標準庫。

模組描述

datetime

用於獲取系統時間

math

提供標準算數的運算函式

random

生成隨機變數

os與作業系統進行互動

sys用於提供對直譯器相關的訪問及維護

re用於字串正則匹配

collections

提供許多有用的集合類

numpy

提供高維陣列及矩陣運算

matplotlib

畫圖模組

上表中的模組都是python安裝包anaconda中已有的模組,要使用這些模組,只要使用

import module_name

或者from module_name import functions

匯入當前環境或對應模組即可。

yeah, you could be the greatest

你會成為最偉大的人

you can be the best

你能做到最好

you can be the king kong banging on your chest

你能像金剛一樣自信滿滿的敲打胸脯

you could beat the world

你可以征服全世界

you could beat the war

能夠贏得一切戰爭

you could talk to god, go banging on his door

甚至能夠與神對話 去敲打他的門

you can throw your hands up

你能自信的舉起雙手

you can beat the clock

你可以與時間抗爭

you can move a mountain

你有移山之力

you can break rocks

你能擊碎岩石

you can be a master

你可以成為命運主宰

don』t wait for luck

無需等待運氣垂青

dedicate yourself and you can find yourself

放手一搏後你會恍然發現

standing in the hall of fame

你已身處名人堂之中

and the world』s gonna know your name

你的英名將會被世界所知曉

cause you burn with the brightest flame

因為你是最耀眼的一道火焰

and the world』s gonna know your name

你的英名將被世界所銘記

and you』ll be on the walls of the hall of fame

鐫刻在名人堂的牆壁之上

hall of fame --the script&will.i.am

Python 物件導向程式設計2

start object 類是所有類的父類,它定義了好多方法,重寫這些方法我們可以定製自己的類。我們可以比較兩個數字的大小,那我們自定義的類可不可以呢?其實很簡單,我們只需要重寫 object 類中定義的比較方法即可。class mynumber 初始化屬性 def init self,num se...

python 物件導向程式設計 2

class testdemo money 1000 私有變數 def init self,name,note 類建構函式初始化資料 self.name name self.note note def calltest self 正常定義的函式 print 我是 self.name,代號 self.n...

2 物件導向程式設計

物件導向的設計實際上是由物件導向分析 object oriented analysis 物件導向設計 object oriented design 物件導向程式設計 object oriented programming 三部分有機的組成在一起。物件導向程式分析和物件導向設計需要用一種方式來描述和記...