我有以下目录结构
RawRepo包含一个简单的类:
class RawRepo:
pass
init .py包含:
__all__ = ["RawRepo"]
yap-analysis.py,我的“主文件”,使用以下任一项,但它不起作用:
from yap import RawRepo
from yap import *
当我尝试实例化它时,说:
TypeError:'module'对象不可调用
如何让它真正起作用?我希望yap
成为模块,而RawRepo
只是其中一个类。
答案 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__
文件以导入模块的内容。