gpt4 book ai didi

python - 如何提供特定于平台的模块实现?

转载 作者:行者123 更新时间:2023-11-28 20:29:53 25 4
gpt4 key购买 nike

我需要通过提供多个实现来使模块中的一个函数与平台无关,而不更改任何导入它的文件。以下作品:

do_it = getattr(__import__(__name__), "do_on_"+ sys.platform)

...但如果将模块放入包中则会中断。

另一种方法是在 do_it() 中硬编码调用 if/elif。

还有更好的吗?

最佳答案

将平台支持的代码放在包中的不同文件中。然后将其添加到人们应该从中导入的文件中:

if sys.platform.startswith("win"):
from ._windows_support import *
elif sys.platform.startswith("linux"):
from ._unix_support import *
else:
raise ImportError("my module doesn't support this system")

关于python - 如何提供特定于平台的模块实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/791098/

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