gpt4 book ai didi

python - Python中表达式的执行顺序

转载 作者:太空宇宙 更新时间:2023-11-04 07:42:48 25 4
gpt4 key购买 nike

我正在学习 python,这里有一段我​​不太懂的代码:

text = 'zip is very zipped'
print text.find('zip', text.find('zip') + 1)

现在,我知道这是完成的捷径:

text = 'zip is very zipped'
occur_once = text.find('zip')
print text.find('zip', occur_once + 1)

我想知道,这是怎么回事

print text.find('zip', text.find('zip') + 1)

有效,Python 以什么顺序计算这些表达式?这种执行“命令”有名称吗?

最佳答案

Python 使用 strict (eager) evaluation strategy :函数的参数总是在应用函数之前被完全计算。评估顺序left to right (评估分配时除外):

不下降到属性查找:

  1. 评估 text.find(我们将结果命名为 F1)
  2. 评估'zip' → A1
  3. 评估 text.find → F2
  4. 评估'zip' → A2
  5. 调用F2.__call__(A2)(我们将调用返回值R1)(text.find('zip'))
  6. 评估 1 → A3
  7. 调用 R1.__add__(A3)(返回 R2)(R1 + 1)
  8. 调用F1.__call__(A1, R2)(返回最终结果)(text.find('zip', R2))

关于python - Python中表达式的执行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15670751/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com