Импортировать переменную класса из другого модуля

Я пытаюсь импортировать только переменную внутри класса из другого модуля:

import module.class.variable # ImportError: No module named class.variable from module.class import variable # ImportError: No module named class from module import class.variable # SyntaxError: invalid syntax (the . is highlighted) 

Я могу сделать следующее, но я бы предпочел просто импортировать одну переменную, в которой я нуждаюсь.

 from module import class as tmp new_variable_name = tmp.variable del tmp 

Это возможно?

2 Solutions collect form web for “Импортировать переменную класса из другого модуля”

 variable = __import__('module').class.variable 

Вы не можете этого сделать – оператор import может только приносить элементы из модулей или подмодулей – атрибуты класса, хотя и адресуемые с тем же синтаксисом точек, который используется для доступа к подмодулю, не могут быть индивидуально импортированы.

Что вы можете сделать, так это:

 from mymodule import myclass myvar = myclass.myvar del myclass 

В любом случае, всякий раз, когда кто-то использует from module import anything синтаксиса, весь модуль считывается и обрабатывается. Исключением является

 from module.submodule import submodule 

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

(Таким образом, даже обходное решение выше, mymodule считывается и выполняется – он не становится доступным в глобальном пространстве имен, в котором выполняется оператор импорта, но он будет отображаться со всеми его компонентами в словаре sys.modules .

  • В этой ситуации Python 3 не нуждается в __init__.py?
  • Импорт модуля динамически с использованием imp
  • Почему Celery работает в оболочке Python, но не в моих представлениях Django? (проблема импорта)
  • import webapp2 работает на google-app-engine, хотя у меня нет установленного webapp2
  • как использовать относительный импорт в среде python spyder IDE
  • Python: оптимизация импорта
  • Как узнать, какие методы, свойства и т. Д. Имеет модуль python
  • HTML-парсер в Python
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.