У меня есть репозиторий git, в котором есть модуль python, определяющий несколько классов, некоторые из которых являются частными. Я использую это репозиторий git в качестве подмодуля 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 импортируется в другое место. С другой стороны, я мог бы сделать:
from repo1 import module as mod
, а затем у меня есть mod._foo, доступный для использования в качестве супер, но у меня нет бара, доступного для использования в другом месте.
Is Есть ли способ сделать что-то эквивалентное from module import *
, что также включает в себя частные члены, или я должен сделать что-то вроде
from module import *
from module import _foo
или есть что-то лучше / лучше / безопаснее / чище? Если это что-то меняет, мне не нравится from module import *
, и я бы предпочел избегать этого, если это возможно.