python—如何正确地从另一个文件中的类导入方法
这里是Python新手。我在尝试从我创建的类导入和/或使用方法时遇到问题,我为该类创建了“/lib”目录 以下是我当前的文件树:python—如何正确地从另一个文件中的类导入方法,python,python-3.x,Python,Python 3.x,这里是Python新手。我在尝试从我创建的类导入和/或使用方法时遇到问题,我为该类创建了“/lib”目录 以下是我当前的文件树: /tokenmgt /lib/myToken.py 从目录: /tokenmgt 我正在这个目录下从命令行运行python。 我想使用类“TokenMgr”中定义的“create”方法: class TokenMgr(): “”“为令牌管理器建模”“” 定义初始化(自): 通过 def创建(自我、私钥、电子邮件): """""" 我发现以下
/tokenmgt
/lib/myToken.py
从目录:
/tokenmgt
我正在这个目录下从命令行运行python。
我想使用类“TokenMgr”中定义的“create”方法:
class TokenMgr():
“”“为令牌管理器建模”“”
定义初始化(自):
通过
def创建(自我、私钥、电子邮件):
""""""
我发现以下错误:
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)
键入“帮助”、“版权”、“信用证”或“许可证”以了解更多信息。
>>>导入lib.myToken
>>>从lib.myToken导入创建
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
导入错误:无法从“lib.myToken”(C:\Users\FOO\Desktop\MyWork\dev\lib\myToken.py)导入名称“create”
是否还需要导入在.py脚本中定义的类名(“TokenMgr”)?我不知道如何正确地执行此操作。多亏了,只能通过对象访问create方法。因此,您应该导入类,创建实例,然后执行instance.create()..如果您觉得创建不应该绑定到任何对象,您可以使用@classmethod对其进行修饰,这样您就可以在没有对象的情况下访问 下面是一些基础知识。Pythons类可以有三种类型的例程
tokenManager_obj = TokenManager()
tokenManager_obj.create()
在[6]:B.创建(10)
在静态创建方法中
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..
create方法只能通过对象访问。因此,您应该导入类,创建实例,然后执行instance.create()…如果您觉得create不应该绑定到任何对象,您可以使用@classmethod对其进行修饰,这样您就可以在没有对象的情况下访问 下面是一些基础知识。Pythons类可以有三种类型的例程
tokenManager_obj = TokenManager()
tokenManager_obj.create()
在[6]:B.创建(10)
在静态创建方法中
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..
这是导入和使用类的正确方法:
from lib.MyToken import TokenMgr
manager = TokenMgr()
manager.create(private_key,'foo@gmail.com')
注意第二行,我们在其中创建了类的实例。这是导入和使用类的正确方法:
from lib.MyToken import TokenMgr
manager = TokenMgr()
manager.create(private_key,'foo@gmail.com')
请注意第二行,我们在其中创建了该类的实例。可能类似于:
导入myToken.TokenMgr
已授予要使用此方法的另一个文件位于同一目录级别。@FishingCode-thx.I稍远一些。但当我使用该类时,它会显示NameError:未定义名称“create”我这样称呼它-my_token=create(private_key,'foo@gmail.com“)啊,好的。我认为它必须类似于import myToken.TokenMgr as tokenMethod
tokenMethod可以是您想要的任何东西,然后调用create
如下所示:tokenMethod.create()
@FishingCode您实际上需要在此处实例化该类。可能类似于:导入myToken.TokenMgr
已授予您要使用此方法的另一个文件在同一目录级别内。@FishingCode-thx。我稍微深入了一点。但当我使用该类时,它会显示NameError:name'create'未定义像这样称呼它-my_token=create(private_key,'foo@gmail.com“)啊,好的。我认为它必须类似于import myToken.TokenMgr as tokenMethod
tokenMethod可以是您想要的任何东西,然后调用create
如下所示:tokenMethod.create()
@FishingCode您实际上需要在此处实例化该类。这是完全正确的,但特别是由于OP是一名新手,您需要提供更多关于他们如何实际执行此操作的详细信息。@alaniwi-谢谢。是的,我正在尝试学习如何正确导入和使用类。因此,任何简单的示例都将不胜感激。谢谢大家都是正确的,但特别是OP是一个新手,你需要提供更多关于他们将如何实际做到这一点的细节。@alaniwi-谢谢。是的,我正在努力学习如何正确导入和使用类。因此任何简单的例子都将不胜感激。谢谢大家谢谢@bensha-你的回复和回答解决了我立即需要获得的问题谢谢@bensha-你的回复和回答解决了我立即需要让它工作的问题!