刚刚行政部门同事来问 Python 里 return 的用法,说他自己敲代码的时候跟网课讲得不太一样,问我为什么,我整理之后记录如下。(BTW,连行政同学都在学 Python了,这是要抢饭碗啊啊)
情况一、
1、三个颜色的分别是三个输出,
r = fun() 首先 执行 fun(),执行的过程中 print 了 test,然后返回值给 r;
2、由于 r = fun() 整个语句是没有返回值的,所以没有输出返回值,如,这样是不会输出 a 的。
3、但 r 确实接收了 fun() 的返回值1,所以直接 print(r) 时,输出的是1,如红框所示。
4、最后黄框输出中,是因为执行 fun()的时候输出了 test ,最后这个表达式(fun() 是个表达式,也是个语句)有值,就把值也输出了。
情况二、
1、黄框内的 test 是由于前两个都执行了 fun() 函数,函数里面有输出,所以会输出 test。
2、至于后面的 None,它的值就是 None,不写 return 语句和 return 后面不写值,都是 return None。
3、最后一个 print(fun()),相当于第二句和第三句的合体,所以输出了 test 和 None。