Python 3.x 为什么将(整数)计算为True?

Python 3.x 为什么将(整数)计算为True?,python-3.x,if-statement,return,Python 3.x,If Statement,Return,在这段代码中,为什么第6行会使用条件语句“if f(3):”执行,这不是本质上就是问“if 3”,因为f(x)只返回x 另外,如果在这种情况下y等于3,“y”为什么不返回False 1 def f(x): 2 return x 3 4 def g(x, y): 5 if x(y): 6 return not y 7 return y 8 9 x = 3 10 x = g(f, x) 11 f = g(f, 0)

在这段代码中,为什么第6行会使用条件语句“if f(3):”执行,这不是本质上就是问“if 3”,因为f(x)只返回x

另外,如果在这种情况下y等于3,“y”为什么不返回False

1   def f(x):
2       return x
3   
4   def g(x, y):
5       if x(y):
6           return not y
7       return y
8   
9   x = 3
10  x = g(f, x)
11  f = g(f, 0)

找到了我问题的答案,谢谢各位

如果您对整数在布尔文本中的行为方式感到困惑,为什么不编写更简单的测试呢?从
print(bool(3))
开始,并从中成长。@JonathonReinhart我正在努力完成伯克利的CS61A课程,我应该为这段代码绘制一个环境图。感谢您继续提供解决方案。你能在回答中总结一下链接中的发现吗?这样,社区的其他成员就可以知道答案是什么,而无需点击链接。这也有助于防止将来链接中断。