在Swift中,我们可以用这样的完成块编写一个函数:
func thisNeedsToFinishBeforeWeCanDoTheNextStep(completion: () -> ()) {
print("The quick brown fox")
completion()
}
然后当我们调用它时,我们可以在该块完成它的过程之后执行该块内部的操作:
func thisFunctionNeedsToExecuteSecond() {
print("jumped over the lazy dog")
}
Python中的等价物是什么?
答案 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)
调用之前使用异步代码,否则这些行将按预期顺序执行。