python 类 对象 知乎_python基础知识:类,对象,模块三者的区别
長話短說,我線代作業還沒有寫呢。
有點編程語言知識的朋友應該知道,編程語言有“面向對象”和“面向過程”兩種。
解釋一下:面向對象技術是目前流行的系統設計開發技術,它包括面向對象分析和面向對象程序設計。面向對象程序設計技術的提出,主要是為了解決傳統程序設計方法--結構化程序設計所不能解決的代碼重用問題。
"面向過程"(Procedure Oriented)是一種以過程為中心的編程思想。這些都是以什么正在發生為主要目標進行編程,不同于面向對象的是誰在受影響。與面向對象明顯的不同就是封裝、繼承、類
而python就是典型面向對象的編程語言。
什么是對象? 對象簡單的來說就是一切具體事物,比如一個杯子,它是一個對象;一個人,也是對象;一臺電腦也是一個對象。仔細想一下,每個對象,是不是都是由它的屬性和行為構成的呢? 比如一個具體的人,他是性別是男,身高180,體重60,不戴眼鏡,諸如此類,就是一個對象的屬性。而“這個人,他正在操場跑步”,他的這個動作,也就是對象的行為。
什么是類? 類就是具有相同屬性和行為的對象的集合。 比如,每個人都有性別,身高,體重,而他們都在做不同的事情。這里的“事情”,其實就可以看成一個容器,只是每個人的內容不同罷了。(想想人類的意思,我想大家應該能懂的)
由此對應到python中的類來看,python中,每類都有自己的“屬性”和方法,屬性就是變量,方法則是函數。而這里的”屬性“則不能具體,因為只有對象才有自己的屬性。 估計說的有點繞,我們直接看實例:
1.python中類的定義為:
class 類名:
....
值得注意的是,這里的類名必須是大寫字母開頭,(為了和函數做區別)
2.下面,我們給人定義一個類,每個人都有,名字,性別,年齡,所以我們可以這樣寫:
class People:
def __init__(self,name,gender,age):
self.name=name
self.gender=gender
self.age=age
def behavior(self):
print("我的名字:{} 性別:{} 年齡:{}".format(self.name,self.gender,self.age))
p=People("小徐子","女",20)
p.behavior()
_init_是一種魔法方法,它的作用是初始化實例對象p,(self函數代表p)同時將參數(也就是屬性)傳到內部。
上面代碼的運行結果是:
現在,不知道大家有沒有對類由一個感性的認識了呢?
3.繼承
類里面有一個很大的特點,就是能夠繼承父類。
繼承的聲明是:
class 類名(父類名):
....
舉個例子,上面只是對人與其他事物進行了一個分別,下面,我們對人進行細分:女人和男人。 很顯然,不管是女人還是男人,都有人的特點,而女人又有自己獨特的特點,比如:長頭發(舉個例子而已,大家不要細究),那么對女人這一類應該怎么樣定義呢?
class Woman(People):
def hair(self):
print("我有長頭發,我很美")
下面我來進行繼承操作:
p=Woman("小徐子","女",20)
p.behavior()
p.hair()
輸出結果如下:
4.super方法
super之所以是super的原因,就在于他能夠繼承父類的初始化定義。舉個例子:
class People:
def __init__(self,name,gender,age):
self.name=name
self.gender=gender
self.age=age
def behavior(self):
print("我的名字:{} 性別:{} 年齡:{}".format(self.name,self.gender,self.age))
class Woman(People):
def __init__(self,name,gender,age,chair):
super().__init__(name,gender,age)/*super繼承*/
self.chair="長頭發"
def hair(self):
print("我愛{}".format(self.name))
p=Woman("小徐子","女",18,"長頭發")
p.behavior()
p.hair()
輸出如下:
碼字有點累了,模塊的知識以后再講吧
總結
以上是生活随笔為你收集整理的python 类 对象 知乎_python基础知识:类,对象,模块三者的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 单片机读tf卡c语言程序,单片机读写U盘
- 下一篇: 画出微型计算机结构图,中级工792、画出