Python類初始化的一些整合

2021-10-08 16:20:23 字數 1362 閱讀 8212

1.如果乙個類沒有定義__init__(),那麼會自動呼叫其父類,也就是說如果父類的__init__()需要傳入引數,而呼叫時沒傳則會報錯。

class a(object):

def __init__(self,name):

self.name=name

def getname(self,name):

return 'a '+name

class c(a):

# def __init__(self,name):

# super(c,self).__init__(name)

def getname(self):

return 'c'+self.name

if __name__ == '__main__':

c = c()

c.name="fdsf"

print( c.getname())

class a(object):

def __init__(self,name):

self.name=name

def getname(self,name):

return 'a '+name

class c(a):

def __init__(self,name):

super(c,self).__init__(name)

def getname(self):

return 'c'+self.name

if __name__ == '__main__':

c = c("jhgj")

#c.name="ghjjg"

print( c.getname())

2.如果子類和父類定義了一樣的函式,那麼優先子類。如果不一樣,則可以呼叫父類的函式。

3.如果重寫了__init__,例項化子類時,則不會隱式的再去呼叫父類中已定義的__init__

4.所以如果重寫了__init__,為了能使用父類的__init__,最好顯式的呼叫超類的__init__方法,即super(c,self).__init__(name)

5.__init__並不相當於c#中的建構函式,執行它的時候,例項已構造出來了,即__init__作用是初始化已例項化後的物件。

6.__init__是顯示的初始化屬性,也可隱式初始化屬性(不推薦)

class rectangle:

def area(self):

return self.length * self.width

r = rectangle()

r.length, r.width = 13, 8

r.area()

關於資料初始化的一些筆記

最近有乙個需求,是需要對線上的一些存量資料進行初始化,在投產當天,出現了效能問題,主要是使用了 update select 這種語法。ps 使用的資料庫是db2.背景 由於是銀行信貸系統,部分表資料量比較大,需要關聯 join 的表也比較多。當時由於沒有經驗,直接使用update select 語法...

關於初始化C 類成員的一些問題

在使用c 程式設計的過程當中,常常需要對類成員進行初始化,通常的方法有以下兩種 第一種方法 cmyclass csomeclass x 0 y 1 第二種方法 cmyclass csomeclass x 0 y 1 本文將要 這兩種方法的異同以及如何使用這兩種方法。從技術上說,第二種方法比較好,但是...

Unit Test中的一些初始化的問題

這週的作業是做一些基礎的test,配合junit 4.我的基礎不是很好,在初始化的時候就卡殼了,我是想測試是不是有兩位參與者,所以我需要初始化兩位參與者到原來 的list裡去,我一開始寫的是 student stdta new student alice fama null,null,null st...