【发布时间】:2013-01-15 04:19:42
【问题描述】:
是否可以在Python中获取传递参数的名称?
具体来说,我希望能够做到这一点:
def a(name):
print "the actual passed parameter is %s" %(???)
解决了什么问题?
因此,如果我需要在袋子和篮子中分发硬币,比如 bag_list 和 basket_list,我不需要发送一个明确的标识符,比如“袋子”或“篮子”
这就是我目前的工作方式。我目前正在为此目的使用(全局)字典-
ID = {'bag': bag_list, 'basket': basket_list}
def a(name, id):
dist_list = ID[id]
它还归结为将变量名转换为字符串,因为所需的行为也可以建模为:
def a(name):
name = ???get variable name as string magically???
if name.startswith('bag'):
dist_list = ID['bag']
else:
dist_list = ID['basket']
已在https://stackoverflow.com/a/9121991/1397945 中全面回答了重新建模的问题,但我正在重新发布此问题
- 以防万一有一些修改 &
- 是否可以在 Perl 或 Tcl 等其他脚本语言中执行此操作。
- 更是如此,以防两种建模方式不同或可以采用任何不同的方式。
谢谢。
【问题讨论】:
-
我不确定我是否理解这个问题。如果你做
def a(name)name参数的名字是"name",不是吗?你还想要什么名字?如果您的意思是用于调用函数的变量的名称,那么可能没有任何这样的变量。如果我打电话给a("foo"),有没有名字?a(foo + "bar")怎么样?至于您想要的行为,为什么不将适当的列表传递给函数? -
我希望它根据我是通过 bag_list 还是 basket_list 来分叉到正确的列表中
标签: python parameters