Как импортировать частичные атрибуты / переменные без пространства имен подмодулей в python? - PullRequest
0 голосов
/ 13 июля 2020

дерево пакетов

.
└── a
    ├── b
    │   ├── fun.py
    │   └── __init__.py
    └── __init__.py

содержимое a/__init__.py

from .b import  fun

содержимое a/b/__init__.py

from .fun import  fun

содержимое a/b/fun.py

def fun:
    print(111)

Я просто запускаю ipython и запускаю

In [1]: import a                                                                                                                                                                                              

In [2]: dir(a)                                                                                                                                                                                                
Out[2]: 
['__builtins__',
 '__cached__',
 '__doc__',
 '__file__',
 '__loader__',
 '__name__',
 '__package__',
 '__path__',
 '__spec__',
 'b',
 'fun']

In [3]:     

issue

Проблема в том, что я не хочу 'b' в каталоге a. Я ожидаю, что пакет просто экспортирует "веселье".

1 Ответ

1 голос
/ 13 июля 2020

измените a/__init__.py как показано ниже:

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