简体   繁体   中英

How to auto-generate the type of a field in a docstring in PyCharm?

When I create a function with parameters, PyCharm offers me to create the docstring with :param param_name: field, which is pretty good. But I also need to add the :type param_name: .

So from that :

def foo(bar, xyz):
    return bar + xyz

With the generate docstring option i have that (even with Insert 'type' and 'rtype' to the documentation stub enable) :

def foo(bar, xyz):
    """
    :param bar:
    :param xyz:
    """
    return bar + xyz

And I would like that :

def foo(bar, xyz):
    """
    :param bar:
    :type bar:
    :param xyz:
    :type xyz:
    """
    return bar + xyz

Per the documentation :

If configured , the documentation comment stubs can be generated with type and rtype tags.

Following the link:

...

  1. In the Smart Keys page, select the check box Insert 'type' and 'rtype' to the documentation comment stub .

Note that the documentation has since been updated, the configuration guidance currently reads:

Enable documentation comments

  1. Open the Editor | General | Smart Keys page of PyCharm settings ⌃⌥S .

  2. In the Enter section, select or clear Insert documentation comment stub checkbox.

  3. Then, scroll to the Insert type placeholders in the documentation comment stub option and select or clear the checkbox as required. Refer to the option description for details.


Once you have done this, put the cursor in a parameter name in the definition, activate the Smart Keys feature ( Alt + Enter , by default) and select Specify type for reference in docstring . This will insert the appropriate comment line . Similarly you can put the cursor in the function/method name and select Specify return type in docstring .

Go to Settings > Editor > General > Smart Keys , then check the box that says Insert type placeholders in the documentation comment stub .

在此处输入图片说明

Just enable this checkbox:

Editor - General - Smart Keys - Insert type placeholders in the documentation comment stub.

Also remember to enable this item so that you can use the Alt + enter to auto insert documentation:

Editor - General - Smart Keys - Insert documentation comment stub

What you asked already has been replied but I find relevant to point that you can use

def foo(bar, xyz):
    """


    :param bar_type bar:
    :param xyz_type xyz:
    """
    return bar + xyz

Use indicate bar_type and xyz_type the types of the variables. A good tip is that you can use | to set more than one possible type. Example:

def foo(bar, xyz):
    """


    :param float|int bar:
    :param numpy.array xyz:
    """
    return bar + xyz

First, check if you have the restructuredText plugin enabled. To check, go to preferences - plugins - restructuredText (if not enabled check the box to enable it) Next, in the same preferences tab, navigate to Tools > Python Integrated Tools > Docstrings

change the Docstring format: restructuredText (instead of Plain) also, check the boxes

  • Analyze the python code in docstrings and
  • Render external documentation for stdlib

在此处输入图片说明 Apply the changes and close.

Finally, to verify the changes, go to function block and add three quotes(single or double) and hit enter or space, you should see the docstring auto-generated.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM