用多个实现记录模块接口

2024-06-16 11:28:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我是一个Python模块的维护者,该模块提供了一个与操作系统无关的API。对于每个受支持的操作系统,都有实现此接口的内部模块

有一个包,__init__.py看起来像:

if sys.platform == "win32":
    from .win32_backend import *
elif sys.platform == 'darwin':
    from .darwin_backend import *

fib.__doc__ = 'Calculates the nth Fibonacci number'

这里设置了docstring,这样就不需要在每个后端模块中复制文档

我觉得这样做有点草率。或者,我们可以有这样的东西,但感觉像很多样板

if sys.platform == "win32":
    import .win32_backend as backend
elif sys.platform == 'darwin':
    import .darwin_backend as backend

def fib(n):
    '''Calculates the nth Fibonacci number'''
    return backend.fib(n)

是否有一种首选的“Pythonic”方法来记录具有多个实现的接口


Tags: 模块thefromimportbackendifsysfibonacci