首页 文章

返回函数调用?

提问于
浏览
0

这是:

def outer(x):
    def inner():
        print x
    return inner

>>> outer("foo")()

与此相同:

def outer(x):
    def inner():
        print x
    return inner()

>>> outer("foo")

两者都有效,但有更多的pythonic方式来写这样的东西吗?

2 回答

  • 3

    从绝对意义上讲,它们都不是“更加pythonic”,因为你会在不同的情况下使用它们 .

    如果您要生成一个要在其他地方连接的回调,关闭某些输入(以后要填写其他输入),或者类似的高级用例,则返回稍后要调用的函数是合适的 .

    如果您的呼叫者只对该值或操作感兴趣,并且您没有任何特殊原因将操作分成多个阶段,则返回值或立即执行副作用操作是合适的 .

  • 0

    它们是不同的 . 在你的例子中,第一个将返回一个函数,你可以在以后使用,第二个将返回None类型,因为你什么也没有返回,只是打印x .

相关问题