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