现在我有一门课叫a
我有这样的代码。。
from my.package.location.A import A
...
foo = A.doSomething(bar)
这太好了。
但是现在我有了一个新版本的a,叫做a,但是在一个不同的包中,但是我只想在某个场景中使用另一个a。所以我可以这样做:
if(OldVersion):
from my.package.location.A import A
else:
from new.package.location.A import A
...
foo = A.doSomething(bar)
这很管用。但它很难看。我怎样才能做得更好?我真的想做这样的事
from my.abstraction.layer.AFactory import AFactory
...
myA = AFactory.giveMeA() # this looks at "OldVersion" and gives me the correct A
foo = myA.doSomething(bar)
有没有办法让我更容易做到?没有工厂层?这现在可以将类上的每个静态方法调用转换为两行。我总是可以在类中保存一个引用来减少影响,但我真的希望python有一个更简单的解决方案。
你能不能在第三个地方做一个包,检查旧版本,从正确的地方得到它自己的a,然后总是导入那个包?
把你的台词放进查找器里:
然后在产品代码中:
你会得到合适的A
你可以这样做:
始终亮.py
然后简单地
import AlwaysRightA as A
就可以了。相关问题 更多 >
编程相关推荐