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

Posted

技术标签:

【中文标题】Python 3从另一个函数更改函数中的变量【英文标题】:Python 3 changing variable in function from another function 【发布时间】:2017-01-24 17:36:33 【问题描述】:

我想从 testadder 中访问 main 中的 testing 变量,这样在 main 中调用 testadder 后它将为 testing 加 1。

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

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

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

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

main()

【问题讨论】:

您能否详细说明testtesting 的一般含义?有点难以理解你想做什么。 【参考方案1】:

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

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

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

main()

【讨论】:

还有一件事。假设我想返回多个变量,那也可以吗?还是我需要以某种方式拆分它? 是的,return a,ba,b = func()

以上是关于Python 3从另一个函数更改函数中的变量的主要内容,如果未能解决你的问题,请参考以下文章

Swift:从另一个函数获取函数中的变量

访问从另一个类调用的函数中的变量

如何将变量从另一个函数传递到索引函数中的视图

Python:如何允许“内部函数”更改多个“外部函数”中的非局部变量

python 一个函数怎么使用另一个函数内的变量

Python和PySide:从另一个文件调用函数时变量值重置