如何获取列表名称作为参数传递给python中的函数

时间:2019-04-19 10:49:56

标签: python list parameters arguments inspect

我在下面有函数,我只想从中返回“ list_”,但无法实现。任何帮助将不胜感激。

import_array()

1 个答案:

答案 0 :(得分:0)

您可以遍历存储在globals()中的全局变量,并返回其值等于作为x[0]提供的参数的变量的名称。在这里,我们使用next()停止对globals()的迭代,并在找到匹配项后立即返回我们的值。

def f(*x, **y):
    return next(i for i in globals() if globals()[i] == x[0])

list_ = [1,2,3,4]
print(f(list_)) # -> "list_"

或使用inspect

def f(*x, **y):
    callers_local_vars = inspect.currentframe().f_back.f_locals.items()
    return next(var_name for var_name, var_val in callers_local_vars if var_val is x[0])

print(f(list_)) # -> "list_"