我想做这样的事情:
fib = 1
foo = (arg):
print arg, argName # the name of the variable that was put in for arg
foo(fib)
并得到这个返回:
1, fib
你不能那样做(正如 Ignacio Vazquez-Abrams 已经回答的那样),但你可以用类似的方式做到这一点:
>>> def foo(**kwargs):
for arg_name in kwargs:
return kwargs[arg_name], arg_name
>>> foo(fib=1)
(1, 'fib')
唯一的区别是您必须使用关键字参数,否则它将不起作用。
另一种解决方案也是访问__name__
传递变量的属性,这将导致获取函数的名称、类或名称(或定义此名称的任何其他内容)。您应该注意的唯一一件事是,默认情况下这不是变量的名称,而是函数/类/模块的原始名称(定义时分配的名称)。请参阅此处的示例:http://ideone.com/MzHNND http://ideone.com/MzHNND
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)