2010-12-29 5 views
1

У меня есть модуль Utilities, который определяет несколько функций, которые многократно используются, а также добавляю некоторые константы. Я бегу в проблемы импортирующей эти константы, хотя ...Проблема импорта Python

Допустим, я работаю в классе А, и у меня есть класс в моих постоянных также назвал

from Utils.Constants import A as DistinctA 
class A(object): 
    .... Implementation .... 
    some_var = DistinctA.SOME_CONSTANT 

class Utils(object): 
    class Constants(object): 
    class A(object): 
     SOME_CONSTANT = "Constant" 

Я, вероятно, что делает это слишком похоже на Java, поэтому, если это так, просто кричите/ударяйте мои суставы линейкой.

Когда я пытаюсь импортировать этот класс, я получаю сообщение об ошибке, что нет модуля с именем Constants. Что нового новичок для python?

ответ

3

Идентификатор после 'from' должен указывать на модуль; вы не можете ссылаться на класс. Хотя я не могу сказать, являются ли ваши вложенные классы «pythonic», я никогда раньше не видел, чтобы это делалось так. Я был бы более склонен создавать модуль constants.py, который содержит класс A. Тогда вы могли бы сделать это:

from constants import A as DistinctA 

Если вы действительно хотите, чтобы эти константы жить внутри утилиты, вы могли бы сделать Utils пакет:

utils/ 
utils/__init__.py 
utils/constants.py 

Тогда вы можете сделать:

from utils.constants import A as DistinctA 
Смежные вопросы