【发布时间】:2013-11-29 16:19:54
【问题描述】:
在 javascript 中,我可以执行以下操作:
var some = 100;
var param1 = 1;
func1(param1, function(res1) {
var param2 = res1 + some;
func2(param2, function(res2) {
// ...
});
});
在php中相同:
$some = 100;
$param1 = 1;
func1($param1, function($res1) use ($some) {
$param2 = $res1 + $some;
func2($param2, function($res2) {
// ...
});
});
如何在 python 中做同样的事情?
.................................................. .
【问题讨论】:
-
使用 lambda 语句,或者传递函数对象。
-
很好奇,我认为没有“lambda 语句”之类的东西——我知道 lambda 表达式。但果然是appears in the official Python docs这句话。撇开迂腐不谈,lambda 表达式的“主体”确实是简单的表达式。它们不是可以以 OP 想要的方式保持状态的语句。可能有一些技巧可以让它们这样做,但总的来说最好避免使用它们。
标签: python python-3.x asynchronous callback closures