cls 之例項化物件

2021-09-28 07:26:48 字數 941 閱讀 4706

今天,在看torchtext的時候,發現了個問題。cls()居然可以作為函式來使用。一開始想不明白,網上查詢加上自己的小實驗算是搞明白了。

train_data =

none

if train is

none

else cls(os.path.join(path, train)

, exts, fields,

**kwargs)

classa(

object):

bar =

1def

func1

(self)

:print

('foo'

) @classmethod

deffunc2

(cls)

:# 類方法

print

('func2'

)print

(cls.bar)

cls(

).func1(

)# 呼叫 foo 方法

a.func2(

)# 不需要例項化

輸出結果為:

func2

1foo

class

test

(object):

def__init__

(self, a, b)

:print

(a, b)

@classmethod

defsplit

(cls, a, b)

: cls(a, b)

test.split(1,

2)

輸出結果為

1 2cls類似於self,可以用cls.***x來呼叫類的屬性,類的方法。可以直接使用類名.方法名()來呼叫。在這裡就相當於例項化物件了。

C 之例項化物件與方法過載

student st1 new student 因為只有例項化之後,才能將這個物件放到記憶體中,然後才能在規定的範圍內來呼叫。1 過載是方法名不變,引數列表 引數型別或個數以及順序 不同的方法體現。2 返回值可以相同也可以不同。當引數個數相同而引數型別不同的時候,可以考慮使用泛型,提高 的復用性。3...

物件例項化

參考資料 尚矽谷jvm教程 面試題 美團 物件在jvm中是怎麼儲存的?物件頭資訊裡面有哪些東西?螞蟻金服 j a物件頭有什麼?8.1.1 建立物件的方式 8.1.2.建立物件的步驟 public class objecttest 前面所述是從位元組碼角度看待物件的建立過程,現在從執行步驟的角度來分析...

reflect例項化物件

1.在使用class例項化物件的時候,必須保證類中存在乙個無參構造器,否則無法使用。2.如果想要使用有參構造器進行物件的例項化操作,則必須使用constructor類完成,此類表示構造方法,並通過可變引數傳遞要求的內容。如果想要呼叫有參,則必須按照以下的步驟 1 通過class類中的getconst...