python获取函数中参数的变量名

发布于 2021-01-29 18:19:34

我想做这样的事情:

fib = 1
foo = (arg):
    print arg, argName # the name of the variable that was put in for arg
foo(fib)

并得到返回:

1, fib
关注者
0
被浏览
151
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您不能那样做(正如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


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看