Python导入问题

时间:2010-12-29 17:00:03

标签: python import

我有一个Utilities模块,它定义了一些重复使用的函数,并且还添加了一些常量。我在导入这些常量时遇到了麻烦......

假设我在A班工作,我的常量中有一个名为A的类

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的模块。这个蟒蛇新手失踪了什么?

1 个答案:

答案 0 :(得分:3)

'from'之后的标识符必须指向一个模块;你不能参考一个班级。虽然我没有资格说你的嵌套类是否是'pythonic',但我以前从未见过这样做过。我更倾向于创建一个包含A类的constants.py模块。然后你可以这样做:

from constants import A as DistinctA

如果你真的希望这些常量存在于utils中,你可以使utils成为一个包:

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

然后你可以这样做:

from utils.constants import A as DistinctA