在功能中打印变量标签

时间:2018-01-29 18:15:05

标签: python variables printing sage

如何在函数中返回变量名称。例如。如果我有这个功能:

def mul(a,b):
   return a*b

a = mul(1,2); a
b = mul(1,3); b
c = mul(1,4); c

这将返回:

2
3
4

我希望它返回:

a = 2
b = 3
c = 4

我该怎么做?

2 个答案:

答案 0 :(得分:3)

不幸的是,你无法向往"倒退"并打印变量的名称。这在this StackOverflow post中有更详细的解释。

您可以做的是将变量名称放在字典中。

dict = {"a":mul(1,2), "b":mul(1,3), "c":mul(1,4)}

从那里你可以遍历键和值并打印出来。

for k, v in dict.items():
    print(str(k) + " = " + str(v))

或者,如果您希望对值进行排序,则可以将值放入元组列表中,然后在for循环中再次遍历它们。

lst = [("a", mul(1,2)), ("b", mul(1,3)), ("c",mul(1,4))]

答案 1 :(得分:1)

以下是使用python-varname软件包的方法:

from varname import varname

def mul(a, b):
   var = varname()
   return f"{var} = {a*b}"

a = mul(1,2)
b = mul(1,3)
c = mul(1,4)

print(a) # 'a = 2'
print(b) # 'b = 2'
print(c) # 'c = 2'

该程序包托管在https://github.com/pwwang/python-varname上。

我是包裹的作者。如果您有任何疑问,请告诉我。