Python帮助提示更改文本

时间:2014-01-26 11:47:30

标签: python docstring

我正在研究一些基本的Python代码,但我遇到了一个我从未能够解决的问题。 实际上,我想改变一个函数的帮助提示,我完全可以做到。

首先,这是我的代码(例如):

def main(arg1,arg2,arg3):
    #some blabla
    return 1

问题是,如果我开始调用此函数(例如在IDLE中),我会出现一个帮助提示,它只是获得与定义函数相同的语法:main(arg1,arg2,arg3)

我更喜欢像main(负责任的名字,负责任的昵称,负责任的电话)这样的东西,它代表了每个args更好的方式。我已经尝试了一些文档字符串实现,但我只能将两行放在一起,但不能删除带有arg1的第一行......

有人能告诉我是否有办法得到我想要的东西?

2 个答案:

答案 0 :(得分:0)

两件事:

  1. 如果你想要命名参数,那很好;用它们定义你的功能:def main(name, nickname, phone):;和
  2. 对于文档字符串,格式不是#(注释),而是"""(多行字符串)。
  3. 例如:

    def myfunc(name, age, height):
        """Returns a growth-rate for the person based on age and height."""
        return height / age
    

    现在“工具提示”上写着:

    (name, age, height)
    Returns a growth-rate for the person based on age and height.
    

    如果您不希望显示任何命名参数,可以使用*args

    def myfunc(*args):
        """Takes three arguments: name, age and height, returns a growth rate."""
        name, age, height = args
        return height / age
    

    现在工具提示是:

    (...)
    Takes three arguments: name, age and height, returns a growth rate.
    

答案 1 :(得分:0)

好吧,基本上你不能做你想说的话。您需要更改函数的原型以匹配您希望在文档中看到的内容,即使这意味着在代码中使用非常长的变量名称。

如果你采用python的Zen(显式优于隐式),你需要仔细选择你的变量名,因此它们显式而且不会太长。所以在任何一种情况下,你的名字选择都很糟糕,arg0,arg1,arg2很糟糕,因为它没有任何意义,Responsible name...太长了(我甚至都不会提到包括空格在内没有意义)。

然后,它是文档字符串的一部分,为每个参数赋予一个句子来说明该论点的全部内容,通常是:

def afunc(foo, bar):
    """This is a function
    @param foo this is the first parameter
    @param bar this is the second paramater
    """
    pass