openlang

Импорт всех имён из модуля

Можно ли перенести буквально всё содержимое одного модуля в другой?

Сейчас приходится писать


import LocalNotes;from LocalNotes import *;from LocalNotes import __html__, _mark

чтобы импортировать все нужные имена, хотя хотелось бы обойтись одним оператором.

Переведено с английскогоПоказать оригинал

Разговор продолжается 2

Следуя доводам
  1. Ссылка на ответ

    При использовании import * обычно стоит также определить __all__ (https://docs.python.org/3/reference/simple_stmts.html#module.__all__).

    В LocalNotes.py внесите в __all__ все нужные имена, включая __html__ и _mark, и импорт со звёздочкой подхватит всё перечисленное.

    
    __all__ = [
        # ...
        "__html__",
        "_mark",
    ]
    Переведено с английскогоПоказать оригинал
  2. Ссылка на ответ

    Если понимать «всё содержимое» буквально: import LocalNotes; globals().update(LocalNotes.__dict__)

    Скорее всего, вам нужно другое. Имена вроде __name__, __path__ тоже будут заменены, что позже может привести к неожиданному поведению. Хотя в отдельных случаях может понадобиться именно это.

    Вероятно, правильнее будет настроить __all__, как описано выше.

    Переведено с английскогоПоказать оригинал

Другие стороны того же вопроса

  1. Уменьшение шума в консоли docker-compose

    Когда docker-compose up запускает все сервисы в моей среде разработки, несколько контейнеров выдают сотни и сотни строк. Можн…

    Ответы 3Последняя активность bash
  2. Можно ли создавать модули расширения Python на языке D вместо C?

    Похоже, D умеет компоноваться с C. Я хочу написать модуль расширения Python на D. Не упускаю ли я какую-то причину, по которо…

    Ответы 2Последняя активность d
  3. Объявлять плагины Micro через Nix?🤔

    В python можно написать так: Python.withPackages (q: with q; [ fastapi ]) Есть ли аналогичный механизм для редактора Micro? М…

    Ответы 3Последняя активность nix