以pythonic方式使用类似java的导入

以pythonic方式使用类似java的导入,python,Python,我正在寻找一种pythonic方法来处理以下包结构问题 在我的项目中,我实现了几个文件解析器。这是我对包装结构的第一个想法: myproject └── parsers ├── __init__.py ├── parser_a.py └── parser_b.py 这种方法的缺点是所需的导入相当冗长: from myproject.parser.parser_a import Parser_A from myproject.parser.parser_b import

我正在寻找一种pythonic方法来处理以下包结构问题

在我的项目中,我实现了几个文件解析器。这是我对包装结构的第一个想法:

myproject
└── parsers
    ├── __init__.py
    ├── parser_a.py
    └── parser_b.py
这种方法的缺点是所需的导入相当冗长:

from myproject.parser.parser_a import Parser_A
from myproject.parser.parser_b import Parser_B
我认为这种进口会更好:

from myproject.parser import Parser_A
from myproject.parser import Parser_B
至少有两种方法可以实现这一点:

i) 将所有解析器放在一个巨大的python模块中

myproject
└── parser.py
但这将导致一个巨大的、可能令人困惑的parser.py文件

ii)在多个文件上拆分parser.py模块[]

parser.py的内容:

这种方法避免了一个文件的问题,但在我看来,它有点粗糙


这可能是一个意见的问题,但我正在寻找一种类似蟒蛇的方法来处理这类问题。使用那些缩短的、类似java的导入是否可以接受?如果是这样的话-首选的方式是什么?

我个人会将所有内容都放在parser.py中

另一个常见选项是使用此布局:

myproject
└── parsers
    ├── __init__.py
    ├── parser_a.py
    └── parser_b.py
并在
\uuuu init\uuuuu.py
中具有以下内容:

from parsers.parser_a import ParserA
from parsers.parser_b import ParserB
对于这一点,实际上并没有一个特定的规则,所以使用什么取决于您


记住python不是java。在一个文件中定义多个类完全可以。

我个人会将所有内容都放在parser.py中

另一个常见选项是使用此布局:

myproject
└── parsers
    ├── __init__.py
    ├── parser_a.py
    └── parser_b.py
并在
\uuuu init\uuuuu.py
中具有以下内容:

from parsers.parser_a import ParserA
from parsers.parser_b import ParserB
对于这一点,实际上并没有一个特定的规则,所以使用什么取决于您

记住python不是java。可以在一个文件中定义多个类