我是Python新手,我有这样的代码:
class Configuration:
@staticmethod
def test():
return "Hello World"
当我从其他python代码中调用方法test
时:
import test
test.Configuration.test()
我收到这样的错误:
Traceback (most recent call last):
File "example.py", line 3, in <module>
test.Configuration.test()
AttributeError: 'module' object has no attribute 'test'
我犯了错误?
我的目录结构:
root
--example.py
--test
----__init.py__
----Configuration.py
答案 0 :(得分:1)
Python模块名称及其包含的类是单独的。您需要使用完整路径:
import test
print test.Configuration.Configuration.test()
您的test
软件包中有一个名为Configuration
的模块,而内的该模块是您的Configuration
类。
请注意,与Java不同,Python允许您在类之外定义方法,不需要将其设置为静态方法。您也不需要为每个类使用单独的文件。
答案 1 :(得分:0)
尝试将模块重命名为“test”以外的模式,因为这是标准库模块的名称(http://docs.python.org/2/library/test.html),可能您要导入该模块而不是您自己的模块。另一个选择是将包含测试模块的目录添加到PYTHONPATH环境变量中,以便python可以找到它而不是标准库模块(但不建议这样做,因为它会影响标准模块,您将无法导入它稍后)。
要检查要导入的文件,请执行以下操作:
import test
print test