Почему в таком случае вызывается инициализатор? - PullRequest
0 голосов
/ 19 июня 2020

У меня такая компоновка пакетов:

В nlu / dirctory у меня есть:

nlu / nlup.py

class NLUP(object)

   def __init__(self)
      ...

      print("Why is this classed? This initializer is heary!")

nlu / init .py

from nlu import nlup
nls = nlup.NLUP()
...

nlu / utils / text_normalizer.py

def normalize(text):
    if not text:
        return " "

Затем у меня есть файл для проверки нормализатора текста: tools / test, py:

from nlu.utils import text_normalizer

print('why is the initialier of NLUP called?')

Я не понимаю, почему импорт text_normalizer вызвал вызов инициализатора NLUP. Normalizer.py ничего не импортирует из пакета 'nlu'. Он использует только пространство имен: "from nlu.utils".

Есть способ избежать этого? Когда я вызываю функцию "normlaize", я не хочу, чтобы вызывался инициализатор NLUP. Просто text_normalizer находится под пакетом nlu.

Это нормально?

setup.py
setup(name='nlu',
      version='1.0',

      packages=['nlu'],
      package_dir={'nlu':'nlu'},
      package_data={'nlu':['*.*']}
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...