另一个模块中python类的别名

时间:2013-08-28 09:33:39

标签: python

例如:

我有一个包含CLASS类的模块A, 我也有模块B在其方法中使用类CLASS作为参数 我有模块C什么使用模块B.所以我应该导入A.CLASS来实现它 可以将CLASS作为参数传递给模块B中的方法。但是如果我将模块A放入 到另一个包D.E.F ...我会得到一个非常长的导入字符串

在模块B中为CLASS制作别名的最佳方法是什么,使用B.someMethod(B.CLASS)和模块 C对模块A一无所知。

现在我在模块B中导入A.Class,然后在模块C中使用import B.CLASS

。#File:a.py

class Klass(object):
    pass

。#File b.py

from a import Klass

def somemethod(foo):
    pass

。#File c.py

from b import somemethod
from b import Klass

somemethod(Klass.field)

1 个答案:

答案 0 :(得分:0)

我假设您正在尝试描述这种情况,我在这里看不到任何问题:

  

我有一个包含CLASS类的模块A

# File: a.py

class Klass(object):
    pass
  

我有模块B在其方法

中使用CLASS类作为参数
# File b.py

from a import Klass

def somemethod(foo):
    pass

somemethod(Klass)
  

我有模块C什么使用模块B.所以我应该导入A.CLASS以使CLASS作为参数传递给模块B的方法。

# File c.py

from b import somemethod
from a import Klass

somemethod(Klass)
  

现在我在模块B中导入A.Class,然后在模块C中使用import B.CLASS

只需在A.Class中导入B,因为B.ClassA.Class相同