使用变量nam读取返回函数下的变量

2024-04-26 01:35:05 发布

您现在位置:Python中文网/ 问答频道 /正文

>>> class test():
...     def add(self):
...         a = 3+5
...         b = 4+9
...         return a,b
...     
>>> x = test()
>>> x.add()
(8, 13)
>>> z = x.add()
>>> z[0]
8
>>> z[1]
13

我正在寻找读取单个变量的方法,比如使用变量名而不是z[0]z[1]读取ab的值。你知道吗

我还试图避免使用全局变量。你知道吗


Tags: 方法testselfaddreturndefclass全局变量
3条回答

您可以使用collections.namedtuple()来实现:

from collections import namedtuple


Values = namedtuple("Values", ["a", "b"])


class Test():

    def add(self):
        a = 3 + 5
        b = 4 + 9

        return Values(a=a, b=b)


test = Test()
x = test.add()
print x.a
print x.b

输出:

8
13

也可以返回dict。e、 克:

def add():
    a = 3 + 5
    b = 4 + 9

    return {"a": a, "b": b}

然后通过Python语法sugar[key]访问,例如:

x["a"]
x["b"]

或者您可以简单地解包返回的未命名元组,如下所示:

a, b = test.add()

元组也可以解包并存储在变量中

例如

x,y,z = 2,3,4
def getMyTuple():
   return a,b,c,d

w,x,y,z = getMyTuple()

像这样简单地分配

a, b = x.add()

现在,a将有8个,b将有13个

相关问题 更多 >