Эквивалентно «из модуля импорта *», но включает частных участников - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть репозиторий 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 *, и я бы предпочел избегать этого, если это возможно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...