以pythonic方式使用类似java的导入
我正在寻找一种pythonic方法来处理以下包结构问题 在我的项目中,我实现了几个文件解析器。这是我对包装结构的第一个想法:以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
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。可以在一个文件中定义多个类