首页 > 解决方案 > 将函数的文档字符串传递给另一个文件python3

问题描述

我正在使用 apispec 来生成 openapi 规范(swagger),以便在 AWS 中进一步使用。

我试图通过创建另一个包含与实现的路由相关的文档字符串的函数的文件来优化我当前的文件。我仍然不确定这是否可能,但我确定它对我不起作用。到目前为止,这是我已经实现的:

文件login_file.py中login_doc()下面的函数包含与登录路由相关的文档字符串。

def login_doc():
"""
post:
  responses:
    "200":
      description: "200 response"
      content:
        application/json:
          schema:
          $ref: "#/components/schemas/Empty"
"""
pass

在文件generate_openapi.py我这样做了:

import login_file

@app.route('/login', methods=['POST'])
def login():
  login_file.login_doc.__doc__

PS:其余的导入工作正常,只是在发布此问题时将其删除。

不幸的是,这对我不起作用。正如我之前所说,我试图尽量减少generate_openapi.py的代码行数,使其更具可读性和可理解性。提前感谢大家的时间。

标签: pythonpython-3.xopenapiflask-apispec

解决方案


虽然我怀疑它是否有助于可读性,但如果您在函数外部定义文档字符串,则可以在定义函数后设置文档字符串,如下所示:

import login_file

@app.route('/login', methods=['POST'])
def login():
  ...

login.__doc__ = login_file.login_doc.__doc__

或者,定义一个装饰器来更改函数的文档字符串。


推荐阅读