首页 > 解决方案 > 如果条件为假,如何返回变量名字符串?

问题描述

我有很多变量,它们的值是用户的输入。所以我想如果 input == 0 变量的值变成它的名字!我知道我可以尝试:

Var = something if something else "var"

但在实际代码中,“某事”部分很长,代码会很湿。我试图定义一个函数,但还有另一个问题:

X = 9
Y = 0

Def f(x):
   digit_finder = max(list(map(lambda x:abs(x) , re.findall(r'\d+', str(x))
   if digit_finder > 0:
     x = x
   else:
     x = str(x)
   return x
Print(f(x))
Print(f(y))
Pri
>>> 9
>>> 0.0 # I want this part returns "y"

标签: pythonpython-3.x

解决方案


如果您仅出于测试目的需要它,我建议您抛出异常:

def f(v):
    if v:
        return v * 2
    else:
        raise ValueError()


x = 1
y = 0
f(x)
f(y)

结果:

Traceback (most recent call last):
  File "C:/.../test.py", line 11, in <module>
    f(y)  <----------------------------------- here is variable name
  File "C:/.../test.py", line 5, in f
    raise ValueError()
ValueError

推荐阅读