美文网首页
获取Python方法的描述、参数、返回值

获取Python方法的描述、参数、返回值

作者: 木木111314 | 来源:发表于2023-08-21 11:27 被阅读0次
import inspect
from  Tool import Tool

tool1=   Tool()
methods = [method for method in dir(tool1) if callable(getattr(tool1, method))]

# 获取方法描述
def getmethoddes(method):
    docstring = inspect.getdoc(method)
    if docstring==None:
        return ""
    lines = docstring.strip().split('\n')

    first_paragraph = ""
    for line in lines:
        line = line.strip()
        if line:
            first_paragraph += line + " "
        else:
            break
    return first_paragraph
# 获取方法参数
def getmethodparams(method):
    parameters = inspect.signature(method).parameters
    #for name, parameter in parameters.items():
    #    print(name, parameter.default)
    return parameters

import ast
class ReturnValueVisitor(ast.NodeVisitor):
    def __init__(self):
        self.return_variables = []

    def visit_Return(self, node):
        if isinstance(node.value, ast.Tuple):
            for item in node.value.elts:
                if isinstance(item, ast.Name):
                    self.return_variables.append(item.id)
        elif isinstance(node.value, ast.Name):
            self.return_variables.append(node.value.id)

# 获取方法返回值
def getReturns(method):
    import textwrap
    source_code = inspect.getsource(method)
    dedented_code = textwrap.dedent(source_code)
    # 解析源代码
    tree = ast.parse(dedented_code)

    # 遍历抽象语法树
    visitor = ReturnValueVisitor()
    visitor.visit(tree)

    # 获取返回值的变量名称
    return_variables = visitor.return_variables
    return return_variables





for name in methods:
    if not name.startswith("__"):
        method = getattr(tool1, name)
        print(name)
        #des=getmethoddes(method)
        #print("\"{0}\",".format(des))
        parameters = getmethodparams(method)
        return_variables = getReturns(method)
        print(return_variables)
    # print(dir(method))

相关文章

  • JVM方法描叙符

    1.方法描述符: (方法参数)方法返回值: | 标识字符 | 含义 | BbyteCcharDdoubleFflo...

  • 构建GOCD Pipeline你应该知道的Shell脚本知识

    Shell基础 Shell脚本开始 function 获取参数 获取function 返回值。方法体内通过echo...

  • Python 问题记录

    python 问题 Python获取URL中参数的方法 pip install urllibfrom urllib...

  • oc方法签名(Method Signature)机制

    方法签名 oc对方法的参数个数、参数类型以及返回值类型的描述,每个方法都有一个方法签名 假设有方法签名为"@@:@...

  • python字典的setdefault()方法

    python字典的(Dictionary)setdefault()方法 描述: 语法: 参数: key --- 查...

  • idea设置方法注释(亲测有效)

    idea方法注释,系统默认的只能获取到参数,无法获取返回值,如下: 使用Eclipse时我们生成注释的习惯是/**...

  • idea设置方法注释(亲测有效)

    idea方法注释,系统默认的只能获取到参数,无法获取返回值,如下: 使用Eclipse时我们生成注释的习惯是/**...

  • Btrace

    入门 拦截方法 拦截时机 拦截this,参数,返回值 获取对象的值 其他 参考 https://github.co...

  • what is String.prototype.match()

    本质是什么:获取你想要找到的字符串 explain: 这是它的原则 syntax: 参数 返回值 描述 examp...

  • Swift 方法

    1、不带返回值的方法 2、带返回值的方法 3、带参数标签的方法,只显示参数标签,不显示参数名 4、带有默认参数值的...

网友评论

      本文标题:获取Python方法的描述、参数、返回值

      本文链接:https://www.haomeiwen.com/subject/fcoemdtx.html