python - 如何从另一个文件中的类正确导入方法

Python新手在这里。我在尝试导入和/或使用我创建的类中的方法时遇到问题,我为其创建了“/lib”目录。


这是我当前的文件树:


/tokenmgt

         /lib/myToken.py

从目录:


/tokenmgt

我从这个目录中的命令行运行 python。我想使用我的类“TokenMgr”中定义的“创建”方法:


class TokenMgr():

    """Model a Token Manager"""


    def __init__(self):

        pass

    

    def create(self, privkey, email):

        """<REST OF CODE HERE>"""  

我收到这些错误:


Type "help", "copyright", "credits" or "license" for more information.

>>> import lib.myToken

>>> from lib.myToken import create

Traceback (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)

我是否还需要导入类名(.py 脚本中定义的“TokenMgr”?我很困惑如何正确执行此操作。谢谢


桃花长相依
浏览 160回答 2
2回答

开满天机

这是导入和使用类的正确方法:from lib.MyToken import TokenMgrmanager = TokenMgr()manager.create(private_key,'foo@gmail.com')请注意第二行,我们在其中创建了该类的一个实例。

婷婷同学_

create 方法只能通过对象访问。所以你应该导入你的类,创建一个实例然后执行 instance.create().. 如果你觉得创建不应该绑定到任何对象你可以使用@classmethod 装饰它,这样你就可以在没有对象的情况下访问..这里有一些基础知识。Python 类可以具有三种类型的例程。实例方法 -> 这些方法与一个对象相关联,它们接收 self 作为第一个参数,即对象类方法 -> 对类的所有对象都是通用的,这些方法的第一个参数是 cls 而不是 self静态方法 -> 它们也绑定到一个类,但它们既不接收类也不接收对象实例作为它们的第一个参数。这与在类定义之外拥有独立函数一样好。2 和 3 分别使用 @classmethod 和 @staticmethod 装饰器实现,如下所示:在 [6] 中:B.create(10) 在静态创建方法中..In [7]: class A:&nbsp; &nbsp;...:&nbsp; &nbsp; &nbsp;@classmethod&nbsp; &nbsp;...:&nbsp; &nbsp; &nbsp;def create(cls,x):&nbsp; &nbsp;...:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;print("In create method with args {},{}".format(cls, x))&nbsp; &nbsp;...:&nbsp; &nbsp;...:In [8]: A.create(10)In create method with args <class '__main__.A'>,10In [4]: class B:&nbsp; &nbsp;...:&nbsp; &nbsp; &nbsp;@staticmethod&nbsp; &nbsp;...:&nbsp; &nbsp; &nbsp;def create(x):&nbsp; &nbsp;...:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;print("In static create method..")&nbsp; &nbsp;...:In [6]: B.create(10)In static create method..在您的情况下,您可以根据需要使用它们中的任何一个,或者创建 TokenManager 类的对象,然后调用如下所示的创建方法:tokenManager_obj = TokenManager()tokenManager_obj.create()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python