Skip to main content
 首页 » 编程设计

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

2025年05月04日14yxwkf

我正在学习 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))