3

我有以下目录结构

在此处输入图像描述

RawRepo 包含一个简单的类:

class RawRepo:
    pass

初始化.py 包含:

__all__ = ["RawRepo"]

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

from yap import RawRepo
from yap import *

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

TypeError:“模块”对象不可调用

如何让它真正发挥作用?我想yap成为模块,并且RawRepo只是它的类之一。

4

5 回答 5

1

将类导入yap/init.py

from .RawRepo import RawRepo

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

from yap import RawRepo

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

于 2012-12-11T16:36:39.407 回答
0

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

于 2012-12-11T16:23:00.487 回答
0

RawRepo是模块。RawRepo.RawRepo是类,你应该实例化什么。

于 2012-12-11T16:23:12.307 回答
0

__init__.py

from RawRepo import *

然后做yap-analysis.py

from yap import *

r = RawRepo()
于 2012-12-11T16:30:00.610 回答
0

关键是 Python 编译器知道.py文件是一个模块

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

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

于 2012-12-11T16:32:32.900 回答