python的return语句实际上返回了什么?

时间:2017-07-24 07:54:24

标签: python

我想知道如何获取函数返回的值 - python返回语句实际返回的内容。

考虑以下代码:

def foo():
    y = 5
    return y

调用foo()时,我们得到值5

x = foo()

x绑定整数对象5

这是什么意思?返回声明实际上在这里返回什么? int对象5?或变量名y?或绑定到对象5?或其他什么?

我们如何获得return语句返回的值?

2 个答案:

答案 0 :(得分:1)

  

x绑定整数对象5.

是的,x是一个包含对整数对象5的引用的变量,y也保存对该引用的引用。

  

返回声明实际上在这里返回什么? int对象5?   还是变量名y?或者绑定到对象5?或其他什么?

确切地说,返回的是整数对象5的引用。举个例子,看看这个:

In [1]: def foo():
   ...:     y = 5
   ...:     print(id(y))
   ...:     return y
   ...: 

In [2]: x = foo()
4297370816

In [3]: id(x)
Out[3]: 4297370816
  

我们如何获得return语句返回的值?

访问return传递给来电者的参考

答案 1 :(得分:0)

如果您有任何疑问,可以随时访问Python的REPL并尝试使用值和函数。有一个type()指令可以与值和函数一起使用,例如:

Python 3.6.2 (default, Jul 19 2017, 13:09:21) 
[GCC 7.1.1 20170622 (Red Hat 7.1.1-3)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> def foo():
...     y=5
...     return y
... 
>>> type(foo())
<class 'int'>

关于foo()函数,y是一个包含值int的本地绑定。 return语句返回变量y的值,并且在foo()函数范围之外不知道此绑定。