2 回答

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超13個(gè)贊
這是導(dǎo)入和使用類(lèi)的正確方法:
from lib.MyToken import TokenMgr
manager = TokenMgr()
manager.create(private_key,'foo@gmail.com')
請(qǐng)注意第二行,我們?cè)谄渲袆?chuàng)建了該類(lèi)的一個(gè)實(shí)例。

TA貢獻(xiàn)1844條經(jīng)驗(yàn) 獲得超8個(gè)贊
create 方法只能通過(guò)對(duì)象訪問(wèn)。所以你應(yīng)該導(dǎo)入你的類(lèi),創(chuàng)建一個(gè)實(shí)例然后執(zhí)行 instance.create().. 如果你覺(jué)得創(chuàng)建不應(yīng)該綁定到任何對(duì)象你可以使用@classmethod 裝飾它,這樣你就可以在沒(méi)有對(duì)象的情況下訪問(wèn)..
這里有一些基礎(chǔ)知識(shí)。Python 類(lèi)可以具有三種類(lèi)型的例程。
實(shí)例方法 -> 這些方法與一個(gè)對(duì)象相關(guān)聯(lián),它們接收 self 作為第一個(gè)參數(shù),即對(duì)象
類(lèi)方法 -> 對(duì)類(lèi)的所有對(duì)象都是通用的,這些方法的第一個(gè)參數(shù)是 cls 而不是 self
靜態(tài)方法 -> 它們也綁定到一個(gè)類(lèi),但它們既不接收類(lèi)也不接收對(duì)象實(shí)例作為它們的第一個(gè)參數(shù)。這與在類(lèi)定義之外擁有獨(dú)立函數(shù)一樣好。
2 和 3 分別使用 @classmethod 和 @staticmethod 裝飾器實(shí)現(xiàn),如下所示:
在 [6] 中:B.create(10) 在靜態(tài)創(chuàng)建方法中..
In [7]: class A:
...: @classmethod
...: def create(cls,x):
...: print("In create method with args {},{}".format(cls, x))
...:
...:
In [8]: A.create(10)
In create method with args <class '__main__.A'>,10
In [4]: class B:
...: @staticmethod
...: def create(x):
...: print("In static create method..")
...:
In [6]: B.create(10)
In static create method..
在您的情況下,您可以根據(jù)需要使用它們中的任何一個(gè),或者創(chuàng)建 TokenManager 類(lèi)的對(duì)象,然后調(diào)用如下所示的創(chuàng)建方法:
tokenManager_obj = TokenManager()
tokenManager_obj.create()
添加回答
舉報(bào)