我在下面有函数,我只想从中返回“ list_”,但无法实现。任何帮助将不胜感激。
import_array()
答案 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_"