python - 如何翻转嵌套函数中的布尔值
问题描述
我有一个关于翻转布尔值的问题。我想在另一个函数中进行翻转。代码与此类似:
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]
您需要返回所需的值:
def change(x):
return [False]
或者如果你想翻转值更好:
def change(x):
return [not x[0]]
然后,printChange
您需要将返回值分配给isChange
:
def printChange():
isChange = [True]
isChange = change(isChange)
print(isChange)
推荐阅读
- python - 数据框到分层 xml
- javascript - 我可以在语义-ui-react 卡中添加另一个组件而不会破坏它吗?
- javascript - 可以将伪类 (::after) 添加为 HTML 标记的一部分吗?
- vba - DCount 使用两个 Criteria
- python-3.x - 为什么这段代码变慢了?图形.py?
- json - Backstopjs 网站加载问题未通过延迟解决:出了什么问题?
- awk - 循环中的 awk '奇迹般地' 更改 -v 选项中的变量值
- java - 图形未出现在窗口中
- python - Django inlineformset_factory 添加行号
- google-cloud-platform - 在 GCE 上安装 Hashicorp 保险库