Python 内在功能背后的逻辑
我目前正在学习Python,并遵循一个教程,并将其应用于装饰者。但在开始之前,我想好好了解一下内部函数是如何工作的,我遇到了这段代码Python 内在功能背后的逻辑,python,nested-function,Python,Nested Function,我目前正在学习Python,并遵循一个教程,并将其应用于装饰者。但在开始之前,我想好好了解一下内部函数是如何工作的,我遇到了这段代码 def max(a, b, c): def max2(x, y): return x if x >= y else y return max2(a, max2(b, c)) main_max = max(15, 5, 10) print(main_max) 现在,我试图理解它背后的逻辑,但我似乎无法理解传
def max(a, b, c):
def max2(x, y):
return x if x >= y else y
return max2(a, max2(b, c))
main_max = max(15, 5, 10)
print(main_max)
现在,我试图理解它背后的逻辑,但我似乎无法理解传递参数的顺序。我在调试模式下运行它,一步一步地执行这些行,我注意到x被赋值为b,y被赋值为c。为什么呢
这是因为第二个参数max2(b,c)在计算max2(a,max2(b,c))之前首先被计算吗?Max使用三个参数。Max2接受两个参数。唯一相关的代码行是
return max2(a, max2(b, c))
我们知道a
是a
。为了继续计算,我们需要(使用max2
)解析b
或c
中的较大值。换句话说,max2(15,max2(5,10))
可以被认为是类似的
t = max2(5, 10) # (5 ? 10) = 10
return max2(15, t) # (15 ? 10) = 15
要了解的另一件事是
max2
的范围被限制在max
范围内。请注意,此处定义的max
隐藏了内置方法。这可能不是你想要的。谢谢!我刚刚从另一篇文章中复制了这段代码,该文章给出了一个关于内部/嵌套函数如何工作的示例。“唯一相关的代码”回答了所有问题。感谢您的解释。