gpt4 book ai didi

Python,以正确的方式进行条件导入

转载 作者:太空狗 更新时间:2023-10-29 20:44:17 29 4
gpt4 key购买 nike

现在我有一个名为 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)

有没有办法让我更轻松地做到这一点?没有工厂层?这现在可以将我的类上的每个静态方法调用变成 2 行。我总是可以在类中保留引用以减少影响,但我真的希望 python 有一个更简单的解决方案。

最佳答案

将你的行放入 a_finder.py:

if OldVersion:
from my.package.location.A import A
else:
from new.package.location.A import A

然后在您的产品代码中:

from a_finder import A

你会得到正确的 A。

关于Python,以正确的方式进行条件导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6793748/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com