Han*_*ans 5 python return terminate
def foo:
return 1
print(varsum)
Run Code Online (Sandbox Code Playgroud)
打印命令是否仍将执行,或者程序将在return()处终止
该函数将返回,并且执行将在堆栈的下一帧继续。在C语言中,程序的入口是一个称为的函数main。如果您return使用该功能,程序本身将终止。但是,在Python中,main是在程序代码中显式调用的,因此return语句本身不会退出程序。
print您的示例中的语句就是所谓的无效代码。无效代码是永远无法执行的代码。中的print语句if False: print 'hi'是无效代码的另一个示例。许多编程语言都提供了消除死代码或DCE的功能,它们可以在编译时删除此类语句。Python的AST编译器显然具有DCE ,但不能保证所有代码对象都可以。如果应用DCE,则以下两个函数将编译为相同的字节码:
def f():
return 1
print 'hi'
def g():
return 1
Run Code Online (Sandbox Code Playgroud)
但是根据CPython反汇编程序,未应用DCE:
>>> dis.dis(f)
2 0 LOAD_CONST 1 (1)
3 RETURN_VALUE
3 4 LOAD_CONST 2 ('hi')
7 PRINT_ITEM
8 PRINT_NEWLINE
>>> dis.dis(g)
2 0 LOAD_CONST 1 (1)
3 RETURN_VALUE
Run Code Online (Sandbox Code Playgroud)