第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

python - 如何從另一個(gè)文件中的類(lèi)正確導(dǎo)入方法

python - 如何從另一個(gè)文件中的類(lèi)正確導(dǎo)入方法

桃花長(zhǎng)相依 2023-05-09 09:50:43
Python新手在這里。我在嘗試導(dǎo)入和/或使用我創(chuàng)建的類(lèi)中的方法時(shí)遇到問(wèn)題,我為其創(chuàng)建了“/lib”目錄。這是我當(dāng)前的文件樹(shù):/tokenmgt         /lib/myToken.py從目錄:/tokenmgt我從這個(gè)目錄中的命令行運(yùn)行 python。我想使用我的類(lèi)“TokenMgr”中定義的“創(chuàng)建”方法:class TokenMgr():    """Model a Token Manager"""    def __init__(self):        pass        def create(self, privkey, email):        """<REST OF CODE HERE>"""  我收到這些錯(cuò)誤:Type "help", "copyright", "credits" or "license" for more information.>>> import lib.myToken>>> from lib.myToken import createTraceback (most recent call last):  File "<stdin>", line 1, in <module>ImportError: cannot import name 'create' from 'lib.myToken' (C:\Users\FOO\Desktop\MyWork\dev\lib\myToken.py)我是否還需要導(dǎo)入類(lèi)名(.py 腳本中定義的“TokenMgr”?我很困惑如何正確執(zhí)行此操作。謝謝
查看完整描述

2 回答

?
開(kāi)滿天機(jī)

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í)例。


查看完整回答
反對(duì) 回復(fù) 2023-05-09
?
婷婷同學(xué)_

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)型的例程。

  1. 實(shí)例方法 -> 這些方法與一個(gè)對(duì)象相關(guān)聯(lián),它們接收 self 作為第一個(gè)參數(shù),即對(duì)象

  2. 類(lèi)方法 -> 對(duì)類(lèi)的所有對(duì)象都是通用的,這些方法的第一個(gè)參數(shù)是 cls 而不是 self

  3. 靜態(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()


查看完整回答
反對(duì) 回復(fù) 2023-05-09
  • 2 回答
  • 0 關(guān)注
  • 184 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)