Python - 函数的输出? [复制]

Posted

技术标签:

【中文标题】Python - 函数的输出? [复制]【英文标题】:Python - output from functions? [duplicate] 【发布时间】:2010-06-16 11:27:05 【问题描述】:

我有一个非常初级的问题。

假设我调用了一个函数,例如,

def foo():
    x = 'hello world'

如何让函数返回 x,以便我可以将它用作另一个函数的输入或在程序主体中使用变量?

当我使用 return 并在另一个函数中调用变量时,我得到一个 NameError。

【问题讨论】:

我真的推荐你在这里阅读python教程:docs.python.org/tutorial/index.html 【参考方案1】:
def foo():
    x = 'hello world'
    return x  # return 'hello world' would do, too

foo()
print x    # NameError - x is not defined outside the function

y = foo()
print y    # this works

x = foo()
print x    # this also works, and it's a completely different x than that inside
           # foo()

z = bar(x) # of course, now you can use x as you want

z = bar(foo()) # but you don't have to

【讨论】:

您忘记了“以我可以将其用作另一个函数的输入的方式返回 x”的情况,这是最容易做到的,例如 'bar(foo())' @Evan Plaice:很好,谢谢。我已经编辑了我的答案。【参考方案2】:
>>> def foo():
    return 'hello world'

>>> x = foo()
>>> x
'hello world'

【讨论】:

【参考方案3】:

您可以使用global 语句,然后在不返回值的情况下实现您想要的 功能。例如,您可以执行以下操作:

def foo():
    global x 
    x = "hello world"

foo()
print x

上面的代码会打印出“hello world”。

但请注意,使用“全局”根本不是一个好主意,最好避免使用我的示例中显示的用法。

还可以查看有关在 Python 中使用 global 语句的相关讨论。

【讨论】:

从技术上讲,这是 Seafoid 问题的解决方案,但从 python 的角度来看,这是最坏的情况(正如您已经指出的那样)。

以上是关于Python - 函数的输出? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

使用 conv2d 等的 python 函数复制 TFLite 模型层

为啥这个函数会返回这个值? [复制]

如何重用函数的输出? [复制]

Python的函数参数传递 和 global

如何对函数的输出使用索引? [复制]

R:如何让用户定义的函数返回多个输出? [复制]