1

我想从 testadder 访问 main 中的 testing 变量,以便在 main 中调用 testadder 后它将为 test 添加 1。

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

有没有办法解决这个问题?

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

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

main()
4

1 回答 1

1

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

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

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

main()
于 2016-09-16T13:16:44.110 回答