gpt4 book ai didi

python - 函数调用中的双括号是什么意思?例如函数(foo)(酒吧)

转载 作者:IT老高 更新时间:2023-10-28 20:52:15 31 4
gpt4 key购买 nike

我一直使用这个习语在 Python 2 中以 utf-8 标准输出一堆内容:

sys.stdout = codecs.getwriter('utf-8')(sys.stdout)

但老实说,我不知道 (sys.stdout) 在做什么。它让我想起了 Javascript 闭包之类的东西。但我不知道如何在 Python 文档中查找这个成语。

各位好心人能解释一下这里发生了什么吗?谢谢!

最佳答案

.getwriter 返回一个 function 可调用对象;您只是在同一行中调用它。

例子:

def returnFunction():
def myFunction():
print('hello!')
return myFunction

演示:

>>> returnFunction()()
hello!

您也可以这样做:

>>> result = returnFunction()
>>> result()
hello!

可视化:

evaluation step 0: returnSomeFunction()()
evaluation step 1: |<-somefunction>-->|()
evaluation step 2: |<----result-------->|

关于python - 函数调用中的双括号是什么意思?例如函数(foo)(酒吧),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6476825/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com