我知道在运行函数的哪个选项中遇到了几个问题,并且我想以某种方式实现此函数打印其拥有的参数。我发现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
我怎样才能做到这一点?
答案 0 :(得分:1)
你总是可以做两件事:
类似的东西:
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())