/projects/mymath$ ls
__init__.py __init__.pyc mymath.py mymath.pyc tests
在目录
tests
下/projects/mymath/tests/features$ ls
steps.py steps.pyc zero.feature
我试图导入我的阶乘函数
sys.path.insert(0,"../../")
#import mymath
from mymath.MyMath import factorial
但是它说没有名为MyMath的模块。
这是我的虚拟
MyMath
类。class MyMath(object):
def factorial(self, number):
if n <= 1:
return 1
else:
return n * factorial(n-1)
那怎么了谢谢。这甚至是一个好习惯吗(编辑sys路径?)
这将工作
import mymath
最佳答案
据我所知,这是正确的。没有名为mymath.MyMath
的模块。虽然有一个名为mymath.mymath
的模块...
明确地说,当您创建一个文件夹并将一个__init__.py
文件放入其中时,您已经创建了一个包。如果您的__init__.py
文件为空,则仍然必须显式导入软件包中的模块。因此,您必须执行import mymath.mymath
才能将mymath
模块导入名称空间。然后,您可以通过mymath.mymath.MyMath
访问所需的内容,依此类推。如果要直接导入该类,则必须执行以下操作:
from mymath.mymath import MyMath
正如其他人已经解释的那样,您不能从类中导入方法。您必须导入整个类。
关于python - 如何导入我的模块?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9508406/