我正在学习 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 (评估分配时除外):
不下降到属性查找:
- 评估
text.find(我们将结果命名为 F1) - 评估
'zip'→ A1 - 评估
text.find→ F2 - 评估
'zip'→ A2 - 调用
F2.__call__(A2)(我们将调用返回值R1)(text.find('zip')) - 评估
1→ A3 - 调用
R1.__add__(A3)(返回 R2)(R1 + 1) - 调用
F1.__call__(A1, R2)(返回最终结果)(text.find('zip', R2))
