如何在整个地方而不是每个doc_string的整个文档中记录整个Python3类中使用的dict模式?

时间:2018-08-14 03:40:21

标签: python python-3.x docstring

在下面给出的示例代码中,一个类针对多个函数使用相同的字典架构,每个函数的 doc_strings 冗余地记录了该字典的架构

是否有任何已知约定 来记录该类中共同位置的字典模式并因此移出各个doc_strings?

class X:
    def create(data_dict):
        """
         :param <dict> create_handler: format below
            a: <string - REQUIRED> ...
            b: <boolean> ...
            ..
            ..
            ..
        :return: ...
        """

        def search(data_dict):
            """
             :param <dict> create_handler: format below
                a: <string - REQUIRED> ...
                b: <boolean> ...
                ..
                ..
                ..
            :return: ...
            """

        def update(data_dict):
            """
            :param < dict > create_handler: format
            below
            a: < string - REQUIRED > ...
            b: < boolean > ...
            ..
            ..
            ..
            :return: ...
            """

1 个答案:

答案 0 :(得分:0)

使用inspect

In [752]: docstrings = {method: method_name.__doc__ for method, method_name in inspect.getmembers(pd.DataFrame, predicate=inspect.ismethod)}

In [754]: print(docstrings['from_csv'])
Read CSV file.

        .. deprecated:: 0.21.0
            Use :func:`pandas.read_csv` instead.

        It is preferable to use the more powerful :func:`pandas.read_csv`
        for most general purposes, but ``from_csv`` makes for an easy
        roundtrip to and from a file (the exact counterpart of
        ``to_csv``), especially with a DataFrame of time series data.

        This method only differs from the preferred :func:`pandas.read_csv`
        in some defaults:

        - `index_col` is ``0`` instead of ``None`` (take first column as index
          by default)
        - `parse_dates` is ``True`` instead of ``False`` (try parsing the index
          as datetime by default)

        So a ``pd.DataFrame.from_csv(path)`` can be replaced by
        ``pd.read_csv(path, index_col=0, parse_dates=True)``.

        Parameters
        ----------
        path : string file path or file handle / StringIO
        header : int, default 0
            Row to use as header (skip prior rows)
        sep : string, default ','
            Field delimiter
        index_col : int or sequence, default 0
            Column to use for index. If a sequence is given, a MultiIndex
            is used. Different default from read_table
        parse_dates : boolean, default True
            Parse dates. Different default from read_table
        tupleize_cols : boolean, default False
            write multi_index columns as a list of tuples (if True)
            or new (expanded format) if False)
        infer_datetime_format: boolean, default False
            If True and `parse_dates` is True for a column, try to infer the
            datetime format based on the first datetime string. If the format
            can be inferred, there often will be a large parsing speed-up.

        See also
        --------
        pandas.read_csv

        Returns
        -------
        y : DataFrame