在命令提示行中打印该功能的选项

时间:2014-03-12 13:10:39

标签: python python-2.7 command-prompt

我知道在运行函数的哪个选项中遇到了几个问题,并且我想以某种方式实现此函数打印其拥有的参数。我发现this question有关,但我尝试过并没有成功。我试过的代码:

def SharedData(list1, list2, list3, list4, list5, remove=False):
    """Do some magic"""
    sets=list1[:]
    #Magic happens
    print len(sets) / float(len(list1)) * 100, "% of genes start are equal between the predictors from", *list1

使用此代码我想打印第一个参数的名称。所以在命令行中我知道我是如何应用这个功能的。 在运行此函数SharedData(glimmer, easygene, genemark, augustus, prodigal)后,我想在终端提示符处读取类似内容:

30,000000 % of genes start are equal between the predictors from glimmer

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

你总是可以做两件事:

  • 仅使用关键字args
  • 装饰函数以打印出你传入的kwargs。

类似的东西:

def printkwargs(func):
    @functools.wraps(func)
    def wrapper(**kwargs):
        ret = func(**kwargs)
        print ret, kwargs
    return wrapper

@printkwargs
def SharedData(...):...

我没有测试过,但它应该没问题

已更新为包含* args:

def printkwargs(func):
    @functools.wraps(func)
    def wrapper(*args, **kwargs):
        ret = func(*args, **kwargs)
        print ret, args, kwargs
    return wrapper

抓住当地人字典:

from copy import copy

def f(a, b, c):
    l = copy(locals())