如何正确编写模块?

时间:2012-12-11 16:20:15

标签: python python-3.x

我有以下目录结构

enter image description here

RawRepo包含一个简单的类:

class RawRepo:
    pass

init .py包含:

__all__ = ["RawRepo"]

yap-analysis.py,我的“主文件”,使用以下任一项,但它不起作用:

from yap import RawRepo
from yap import *

当我尝试实例化它时,说:

  

TypeError:'module'对象不可调用

如何让它真正起作用?我希望yap成为模块,而RawRepo只是其中一个类。

5 个答案:

答案 0 :(得分:1)

导入yap/init.py中的课程:

from .RawRepo import RawRepo

然后你可以像yap-analysis.py一样导入它:

from yap import RawRepo

请注意,您可以在on模块中对多个类进行分组。您还应该考虑将模块重命名为raw_repo以符合PEP8,“模块应该具有简短的全小写名称。”

答案 1 :(得分:0)

使用您拥有的导入,该类称为RawRepo.RawRepo,而不是RawRepo(后者是模块)。

答案 2 :(得分:0)

RawRepo是模块。 RawRepo.RawRepo是类,以及你应该实例化的内容。

答案 3 :(得分:0)

__init__.py

中的

from RawRepo import *

然后在yap-analysis.py

进行
from yap import *

r = RawRepo()

答案 4 :(得分:0)

重点是Python编译器将 .py 文件知道为模块

您将python模块文件和Class的名称命名为RawRepo。这个成语基本上来自Java世界,并不是非常Pythonic ......

您可以更改__init__文件以导入模块的内容