建立類時,如果其中的部分屬性和方法與其他已有類相同,則可使用繼承。乙個類繼承另乙個類時,將自動繼承另乙個類的所有屬性和方法(除私有屬性和方法)。原有的類稱為父類,新類稱為子類,子類繼承父類的所有屬性和方法,也可以有自己的屬性和方法,也可修改原來類中的方法。
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 三部分有機的組成在一起。物件導向程式分析和物件導向設計需要用一種方式來描述和記...