Python Query'模块'对象没有属性' test_func'

时间:2013-03-26 20:04:49

标签: python module attributes

我正在尝试创建一个新模块和方法作为现有库的一部分。

现有的库名为Bly.Pht。我在这个名为Distance.py的目录中创建了一个新的* .py文件。在Distance.py中,我有以下内容:

class Distance:
    def __init__(self, handle):
        self.handle = handle

    def test_func(t1, t2):
        print "correctly executing"

在Python shell中,我执行以下操作:

from Bly.Pht import Distance    #this works fine

dist = Distance.test_func(input1, input2)

我收到错误'module' object has no attribute 'test_func'

有人可以告知为什么会这样吗?

非常感谢。

2 个答案:

答案 0 :(得分:2)

您没有导入Distance类,而是导入包含Distance类的模块。它可以修复为:

dist = Distance.Distance.test_fund(input1, input2)

如果您不打算在Distance.py中添加其他功能,那么将类定义放在Bly/Pht/__init__.pyBly/Pht.py中可能更好一点,在这种情况下您可以导入就像你一样。 (与其他语言不同,Python不鼓励每个类都有自己的文件)。

答案 1 :(得分:1)

Python不是Java。如果您创建了一个名为Distance.py文件来定义名为Distance,则需要from Bly.Pht.Distance import Distance。或者,如果没有充分的理由让它成为一个类,只需直接在模块中编写方法。