重新了解物件導向

2021-09-26 15:54:46 字數 2717 閱讀 1968

pytorch越看越邊緣,現在重頭看物件導向,因為之前一直是用微控制器,用c語言,對物件導向一知半解,今天有點空時間,深入學一學。

主要**連線:python之路——初識物件導向

這位博主以人狗大戰為例,很形象的講述了物件導向的程式設計過程。

class 類名:

def __init__

(self,引數1

,引數2):

self.物件的屬性1

= 引數1

self.物件的屬性2

= 引數2

def 方法名(self)

:pass

def 方法名2

(self)

:pass

物件名 = 類名(1,

2) #物件就是例項,代表乙個具體的東西

#類名(

): 類名+括號就是例項化乙個類,相當於呼叫了__init__方法

#括號裡傳引數,引數不需要傳self,其他與init中的形參一一對應

#結果返回乙個物件

物件名.物件的屬性1 #檢視物件的屬性,直接用 物件名.屬性名 即可

物件名.方法名(

) #呼叫類中的方法,直接用 物件名.方法名(

) 即可

建立乙個類就會建立乙個類的命名空間,用來儲存類中定義的所有名字,這些名字稱為類的屬性而類有兩種屬性:靜態屬性和動態屬性

建立乙個物件/例項就會建立乙個物件/例項的命名空間,存放物件/例項的名字,稱為物件/例項的屬性在obj.name會先從obj自己的命名空間裡找name,找不到則去類中找,類也找不到就找父類…最後都找不到就丟擲異常。

抽象就是概括多個類的共同特點,先寫乙個父類,然後再依據各自特點新建子類,繼承父類的所有屬性,並增加各自特有屬性即可。

繼承的寫法是:

class

parentclass1

: #定義父類

pass

class

parentclass2

: #定義父類

pass

class

subclass1

(parentclass1)

: #單繼承,基類是parentclass1,派生類是subclass

pass

class

subclass2

(parentclass1,parentclass2)

: #python支援多繼承,用逗號分隔開多個繼承的類

pass

當然子類也可以新增自己新的屬性或者在自己這裡重新定義這些屬性(不會影響到父類),需要注意的是,一旦重新定義了自己的屬性且與父類重名,那麼呼叫新增的屬性時,就以自己為準了。

就是繼承父類之後,自己也可以繼續增加屬性。我大概是這麼理解的。還有就是想在父類的某方法下進行拓展或者修改可以使用super

class

animal

:'''

人和狗都是動物,所以創造乙個animal基類

'''def __init__

(self, name, aggressivity, life_value)

: self.name = name # 人和狗都有自己的暱稱;

self.aggressivity = aggressivity # 人和狗都有自己的攻擊力;

self.life_value = life_value # 人和狗都有自己的生命值;

def eat

(self)

:print

('%s is eating'

%self.name)

class

dog(animal)

:'''

狗類,繼承animal類

'''def __init__

(self,name,breed,aggressivity,life_value)

:super()

.__init__

(name, aggressivity, life_value) #執行父類animal的init方法

self.breed = breed #派生出了新的屬性

def bite

(self, people)

:'''

派生出了新的技能:狗有咬人的技能

:param people:

''' people.life_value -

= self.aggressivity

def eat

(self)

:# animal.eat(self)

#super().eat()

print

('from dog'

)

ha2 =

dog(

'二愣子'

,'哈士奇',10

,1000

)

之後還有好多,但是直白理解並沒有真正的融會貫通,還是等到真的用的時候遇到困惑再取看吧,物件導向就先看到這吧。

了解物件導向

js提供的建構函式 new date 2 自己定義的建構函式 new 加建構函式建立物件 new的函式手寫字母要大寫哦 面向過程是一件事 該怎麼做 物件導向是一件事 該讓誰來做 然後那個 誰 就是物件,他要怎麼做是他自己的事,反正最後一群物件合力能把事做好就行了。物件導向 狗.吃 肉 面向過程 吃....

java 了解物件導向

我們都知道物件導向的應用很廣泛,認識物件導向一定不能少了三大特點 物件導向的三大特性 類與物件的關係 類是對某一事物的描述,是抽象的 概念上的定義 物件是實際存在的該類事物的每乙個個體,所以也成為例項,類就相當於乙個模板。類的定義 class 類名稱 乙個類定義完成之後不能直接使用,需要產生物件 必...

簡單了解物件導向

一,簡單說兩句,不喜歡省略 對學習物件導向的人的一點點建議,開始的時候老師說的很神奇,什麼物件導向,封裝,多型什麼什麼什麼什麼。我覺得這些完全是製造混亂狀態。程式設計就是方法,然後就是方法直接的呼叫,方法會用到傳值,把相似方法羅列起來,組裝起來,就是物件了。就好比一群零件,可能電池也對你有幫助,可能...