求住函数变更函数的内部变量问题
例如:执行函数a(),如何是b()成功修改c这个变量,print出来2def a():
c = 1
b(c)
print(c)
def b(c):
c = c+1 我大概看懂你要表达什么。。。。首先,你定义了b(c)这个函数,然后在a()里面调用,问题是,你b(c)这个函数的代码,只是内部给c+1了一下,你并没有保存或者返回操作后的c值(一顿操作猛如虎。。。)。所以,代码原本就错了,还强行涉及到局部变量与全局变量的问题。。。
修改的话,最简单的话就是把print(c)给b(c)函数 def a():
def b():
nonlocal c
c = c+1
c = 1
b()
print(c) leafu 发表于 2021-9-24 08:58
我大概看懂你要表达什么。。。。首先,你定义了b(c)这个函数,然后在a()里面调用,问题是,你b(c)这 ...
def a():
c = 1
c = b(c)
print(c)
def b(c):
c = c+1
return c
当函数复杂的时候,修改成这样会有问题吗 cdsingle 发表于 2021-9-24 09:38
def a():
c = 1
c = b(c)
不理解你所说的函数复杂是什么情况。。。。首先你要知道,a函数与b函数里面虽然都有c这个参数,但是实际上两个函数的c参数不是同一个东西,都是各自函数的局部变量,不会互相影响。一般怕混淆,会把两个函数的参数用不同的符号,而不是都是用c表示,那是让自己理解困难。。。优化的话,直接把b()函数里面的c参数换成其它的就行
页:
[1]