问题
I would like to access the testing variable in main from testadder, such that it will add 1 to testing after testadder has been called in main.
For some reason I can add 1 to a list this way, but not variables. The nonlocal declaration doesn't work since the functions aren't nestled.
Is there a way to work around this?
def testadder(test, testing):
test.append(1)
testing += 1
def main():
test = []
testing = 1
testadder(test, testing)
print(test, testing)
main()
回答1:
Lists are mutable, but integers are not. Return the modified variable and reassign it.
def testadder(test, testing):
test.append(1)
return testing + 1
def main():
test = []
testing = 1
testing = testadder(test, testing)
print(test, testing)
main()
来源:https://stackoverflow.com/questions/39532350/python-3-changing-variable-in-function-from-another-function