What does python's return statement actually return?

后端 未结 2 1624
情深已故
情深已故 2020-12-20 10:23

I want to know how we get the value returned by a function - what the python return statement actually returns.

Considering following piece of code:



        
2条回答
  •  慢半拍i
    慢半拍i (楼主)
    2020-12-20 10:59

    x binds the integer object 5.

    Yes, x is a variable holding a reference to the integer object 5, which y also holds the reference to.

    What does the return statement actually return here? The int object 5? Or variable name y? Or the binding to the object 5? Or something else?

    To be precise, it is the reference to integer object 5 being returned. As an example, look at this:

    In [1]: def foo():
       ...:     y = 5
       ...:     print(id(y))
       ...:     return y
       ...: 
    
    In [2]: x = foo()
    4297370816
    
    In [3]: id(x)
    Out[3]: 4297370816
    

    How do we get the value returned by the return statement?

    By accessing the reference that return passes back to the caller.

提交回复
热议问题