在命令提示行中打印函数的选项



我有几个问题知道在哪个选项中运行函数,我想以某种方式实现这个函数打印自己的参数。我发现这个问题很相关,但我试过了,没有成功。我试过的代码:

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

我怎么才能做到呢?

你总是可以做两件事:

  • 只使用关键字args
  • 修饰函数以打印您传入的参数

类似:

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

通过抓取locals字典:

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

相关内容

  • 没有找到相关文章

最新更新