什么是Python中的Swift完成块的等价物?

时间:2016-07-03 16:51:26

标签: python swift

在Swift中,我们可以用这样的完成块编写一个函数:

func thisNeedsToFinishBeforeWeCanDoTheNextStep(completion: () -> ()) {
    print("The quick brown fox")
    completion()
}

然后当我们调用它时,我们可以在该块完成它的过程之后执行该块内部的操作:

func thisFunctionNeedsToExecuteSecond() {
   print("jumped over the lazy dog")
}

Python中的等价物是什么?

1 个答案:

答案 0 :(得分:3)

Python将函数视为对象,这意味着你可以传递它们(就像在Swift中一样,尽管我对Swift中的实现细节不太熟悉)。当然,您无法在参数中指定类型,因为您无法在Python中使用任何内容,但这没关系。实现看起来像:

sqlite3

然后使用它们:

def do_first(completion):
    print("The quick brown fox ")
    completion()

def do_second():
    print("jumped over the lazy dog.")

除非您在第一个函数中的do_first(do_second) 调用之前使用异步代码,否则这些行将按预期顺序执行。