等同于'from module import *',但包括私有成员

问题描述 投票:0回答:1

我有一个git repo,它具有一个python模块,该模块定义了几个类,其中一些是私有的。我将git repo用作其他地方的git子模块,并希望添加一个具有相同名称和更多类的新python模块。

这个想法是这样的:

repo1 / module.py:

class _foo:
    def __init__(self, _arguments_):
         #dostuff

class bar(_foo):
    def __init__(self, _arguments_):
         #dostuff

repo2 / module.py:

class baz(_foo):
    def __init__(self, _arguments_):
        #dostuff

我所坚持的是如何正确处理repo2 / module.py中的导入,以便我可以将_foo用作baz的超级,但也可以导入repo2 / module来提供对bar的访问。

如果我使用以下命令启动repo2 / module.py:

from repo1.module import *

我没有提供_foo作为超级目录,但是当repo2 / module.py导入其他地方时,我确实提供了bar。另一方面,我可以做:

from repo1 import module as mod

然后我可以将mod._foo用作超级,但我没有其他地方可以使用的吧。

是否有办法做与from module import *还包括私人成员,或者我应该做类似的事情>>

from module import *
from module import _foo

或者还有更好/更好/更安全/更清洁的东西吗?如果有所作为,我不喜欢from module import *,并且希望尽可能避免使用它。

我有一个git repo,它具有一个python模块,该模块定义了几个类,其中一些是私有的。我在其他地方使用该git repo作为git子模块,并想添加一个具有相同......>

python inheritance
1个回答
0
投票

避免使用通配符导入。改用显式导入。

from module import bar, _foo
© www.soinside.com 2019 - 2024. All rights reserved.