類的例項化那點事

2021-08-17 01:55:24 字數 1335 閱讀 4355

例項化只針對類

1.先寫乙個類

class k(object):

def

a(self):

a = 2

b = 3

m = a + b

print('m: ' + str(m))

return m

def

b(self

, m):

c = 1

print('c: ' + str(c))

return m

if __name__ == '__main__':

u = k() -------------------例項化類

u.a() -------------例項化後可以呼叫類下的函式

2.再在另外乙個檔案中編寫乙個類

from testsuits.test import k

class m(object):

print('00000')

def

c(self):

print('---')

d = k().a()-------------即使是呼叫其他類,也要先例項化,即d=k(),然後再呼叫k下的函式,,,

print('===')

print(d)

詳細分析:

若不先例項化呼叫類k,就呼叫類下的函式,如將會
d = k().a()替換為d = k.a()
型別錯誤typeerror: a() missing 1 required positional argument: 'self'這是因為,類下的函式(如a)分為靜態函式(static)和動態函式,若為動態函式時,是不能直接k.a()這樣呼叫的,
必須先例項化類d=k(),使用k().函式的形式呼叫函式

if __name__ == '__main__':

q = m() ---------------執行該函式體時,依然要先例項化

q.c() ------------------同時使用該類下的函式,若不呼叫類下的方法,也就不會執行函式c的**

3.同理只有函式時,依然要先進行例項化

def 

a():

a = 2

b = 3

m = a + b

print('m: ' + str(m))

return m

l = a()---------------呼叫函式,才會執行a()這個函式體

備註:**書寫過程有部分不規範,如函式名不能用大寫,要小寫,,,僅關注例項化原理對**執行的影響
參考:

本帖僅為個人見解,如有異議,請反饋!

this的那點事

對於很多初學者,this總是搞得我們暈頭轉向。現在,我就簡單的總結一下關於this的那點事。this在函式定義時經常是不能確定的,只有在函式執行的時候才能最終確定this的歸屬。this總是指向最後呼叫它的物件,那麼怎麼知道到底是誰呼叫的呢?其實很簡單,我們知道函式呼叫的其中一種方法就是利用call...

拓展的那點事

時間過得很快,又到了公司每年的拓展時間,今年公司拓展活動是安排在崇明島,因為時間關係自己有一些瑣事不能參加,至今心裡還有一絲的眷戀。拓展訓練不是簡單的娛樂和體育活動,它的中間融合了各種挑戰的元素,這些東西一般是在大學和工作中很難學到的,有時我們看了一些書就感覺自己知道和明白這些道理,但是遇到真真的事...

typedef的那點事

typedef struct node node,linklist 以上這段 幾乎在任何資料結構教材中都會出現,如此經典的一段 的理解還真是費了我一番功夫。之前學的是c 這種純正c風格的寫法幾乎沒有用到過。1.struct node 定義了乙個stuct node型別的結構體 c語言規定結構體型別為...