Python 3在函数中改变另一个函数的变量

时间:2016-09-16 13:10:08

标签: python python-3.x python-nonlocal

我想从testadder访问main中的测试变量,这样在main函数中调用testadder后它会在测试中加1。

出于某种原因,我可以通过这种方式将1添加到列表中,但不是变量。非本地声明不起作用,因为函数没有嵌套。

有办法解决这个问题吗?

def testadder(test, testing):
    test.append(1)
    testing += 1

def main():
    test = []
    testing = 1
    testadder(test, testing)
    print(test, testing)

main()

1 个答案:

答案 0 :(得分:1)

列表是可变的,但整数不是。返回修改后的变量并重新分配。

def testadder(test, testing):
    test.append(1)
    return testing + 1

def main():
    test = []
    testing = 1
    testing = testadder(test, testing)
    print(test, testing)

main()