如何翻转嵌套函数中的布尔值
How to flip the boolean value in a nested function
我对翻转布尔值有疑问。我想在另一个函数中进行翻转。代码与此类似:
def printChange():
isChange = [True]
change(isChange)
print(isChange)
def change(x):
x = [False]
printChange() # [True]
如果我这样修改更改函数:
def printChange():
isChange = [True]
change(isChange)
print(isChange)
def change(x):
x[0] = False
printChange() #[False]
我很好奇为什么会这样。我想这应该与一些可变性有关。谢谢!
您正在修改本地值 x
而不是 isChange
这个函数:
def change(x):
x = [False]
您需要return所需的值:
def change(x):
return [False]
或者如果你想翻转值更好:
def change(x):
return [not x[0]]
然后在printChange
中你需要将return值赋值给isChange
:
def printChange():
isChange = [True]
isChange = change(isChange)
print(isChange)
我对翻转布尔值有疑问。我想在另一个函数中进行翻转。代码与此类似:
def printChange():
isChange = [True]
change(isChange)
print(isChange)
def change(x):
x = [False]
printChange() # [True]
如果我这样修改更改函数:
def printChange():
isChange = [True]
change(isChange)
print(isChange)
def change(x):
x[0] = False
printChange() #[False]
我很好奇为什么会这样。我想这应该与一些可变性有关。谢谢!
您正在修改本地值 x
而不是 isChange
这个函数:
def change(x):
x = [False]
您需要return所需的值:
def change(x):
return [False]
或者如果你想翻转值更好:
def change(x):
return [not x[0]]
然后在printChange
中你需要将return值赋值给isChange
:
def printChange():
isChange = [True]
isChange = change(isChange)
print(isChange)