如何使用 PyCharm 列出函数内参数的可能值?

How to list possible values for an argument inside a function using PyCharm?

当我在 PyCharm 编辑器或控制台中调用函数时,有什么方法可以列出参数的可能值吗?

这是一个基本函数示例:

def func(x='foo'):

    if x=='foo':
       print('foo')
    if x=='bar':
       print('bar')

当我键入 func(x= 时,我想获得参数建议或至少默认值。


编辑 1:如何使特定功能的自动完成打印用法?


编辑 2:如何从 Keras LSTM 复制此行为?

您提供的修改示例:

def func(x='foo'):
    """My awesome function.

    This function receives parameter `x` which 
    can be set to 'foo' or 'bar'.
    """

    if x=='foo':
       print('foo')
    if x=='bar':
       print('bar')

要获取参数信息,调用函数时在括号之间使用Ctrl+P快捷键。它将显示参数列表,以及特定参数的默认值(两个默认值都在您的函数和 Keras 函数中设置)。

但是,要显示函数帮助(函数的文档字符串),请使用Ctrl+Q 调用时在函数名称内的任何位置快捷方式。

奖金:

Python 支持使用 typing 模块的类型注释。您可以创建枚举并将其设置为参数类型,如下所示:

import enum


class State(enum.Enum): # Possible values
    STANDING = 1
    SITTING = 2
    LAYING = 3


def get_person_state(state: State):
    if isinstance(state, State):  # Restrict possible values passed to state.
        print("Valid state:{}".format(state))
    else:
        print("Invalid state passed")

get_person_state(State.SITTING)