当前位置 主页 > 网站技术 > 代码类 >

    python中return的返回和执行实例

    栏目:代码类 时间:2019-12-24 12:08

    1 打印函数名和打印函数的执行过程的区别

    例子1.1

    def a():
     print(111)
    
    print(a) # 打印a函数的内存地址,不会对a函数有影响,a函数不会执行
    print(a()) # 打印a函数的打印部分,并打印a函数的返回值
    

    打印结果:

    <function a at 0x0000000001D02E18>
    
    111
    
    None
    

    总结:

    打印函数名print(a),结果是把该函数的内存地址打印出来了。

    打印函数的执行:print(a( )),打印该函数的执行程序中的print的部分,最后把return的内容也打印出来,没有定义return的函数打印None。

    例子1.2

    def a():
     print(111)
     return None
    def b():
     return a() # 打印a函数中打印的部分,返回a函数的返回值。打印:111,返回None
    
    print(b) # 打印b函数的内存地址
    print(b()) # 打印b函数中打印的部分,打印b函数的返回值
    

    打印结果:

    <function b at 0x00000000021EB8C8>
    
    111
    
    None
    

    代码过程解析如下:

    print(b) 打印变量b(函数)的内存地址,不会对b函数有任何的影响,b函数不会执行。

    print( b() ) :

    《1》先执行b 函数。由于b函数没有定义主体内容,返回空

    《2》打印b函数的返回值:return a() 。由于此时的b函数在运行的,所以return里面的函数也会运行。

      《2.1》,运行 a() ,打印 111出来。

    《2.2》,由于a() 函数里面没有定义return的值,取none作为a()函数的返回值, 也把这none return 给b函数。此时的b函数的返回值也是none,所以print(b())= None

    2,函数内容主体中执行:

    例子2.

    def a():
     print('aaaaaaaa') # 打印:aaaaaaaa
    def b():
     a() # 执行a函数
    
    b() # 执行b函数
    
    

    打印结果:

    aaaaaaaa

    3,在函数的return中执行:

    例子3.

    def a():
     print('aaaaaaaa')
    def b():
     return a()
    
    b()
    

    打印结果:

    aaaaaaaa

    总结:当一个函数执行的时候,若该函数的return内容是一个可执行的程序的时候,该程序也会正常的执行。不过此时的返回值的概念是:打印该程序中的print部分,并返回该函数的返回值,若没有定义返回值就返回None

    4,打印函数名(本质就是打印变量名对应的内存地址:也就是该函数对应的内容主体的内存地址)

    例子4.

    def a():
     print(111) # 打印:111
    print(a) # 打印a函数的内存地址
    def b():
     return a # 返回a函数的内存地址
    print(b) # 打印b函数的内存地址

    return a() 的情况: 尽管这次return的是a() ,但由于b()函数并没有调用,仍然还是打印两个函数的内存地址

    5,函数中的 return中的内容是常量和变量(可执行的函数)的情况下的函数执行问题

    return中为一个常量时: 因为b()函数里面是空的。而return的a是个常量,就是一个内存地址

    例子5.1.

    def a():
     print(111) # 打印:111
    def b():
     return a # 返回a函数的内存地址
    
    b() 
    
    

    return中是一个变量(可执行的函数),则当b函数运行时,b函数的主体和return里面的程序都会运行,效果如下:

    例子5.2

    def a():
     print(111)
    def b():
     return a() # 打印a函数中打印的部分,返回a函数的返回值
    
    b()