dong811019 发表于 2020-8-7 00:18:08

关于函数没有return,则返回为None是否这样理解(详情见正文)

def fun1(x):
    x = 666
    print(x)

fun1(5)
print('**'*10)
print(fun1(5))

运行结果如下:

666      #这是fun1(5)执行结果
******************** #分隔符
666    #这是fun1(5)执行结果
None#这是fun1(5)运行后返回的结果,如果没有print,运行后也会返回一个None只是看不到,请问下是这样理解的吧?



Twilight6 发表于 2020-8-7 00:18:09

本帖最后由 Twilight6 于 2020-8-7 00:24 编辑

666       # 这里是 fun1(5) 函数中的 print 函数的执行结果,属于 fun1(5) 函数运行的结果
********************
666       # 这里是 fun1(5) 函数中的 print 函数的执行结果 ,属于 fun1(5) 函数运行的结果
None   # 这里理解的没错

当你设置了 return 返回值除 None 以外的值,那么最后一个打印的结果就不会出现 None 了

可以试试下面的加上 return 后的代码:

def fun1(x):
    x = 666
    return x

a = fun1(5)
print(a)
print('**'*10)
print(fun1(5))

输出结果:
666    # 这里是 fun1(5) 调用函数后返回值赋值给了 a 后 print(a) 的结果
********************
666    # 这里是直接调用函数 fun1(5) 后 print(fun1(5)) 打印的函数返回值的结果

陈尚涵 发表于 2020-8-7 20:00:26

我来讲一下:
你如果fun1(5)就调用了这个函数,就自然输出了,但是你又print了一遍,其实这个意思是输出返回值,可以没有返回值,所以是None

dong811019 发表于 2020-8-8 22:55:42

谢谢各位的解答

陈尚涵 发表于 2020-8-9 08:37:56

dong811019 发表于 2020-8-8 22:55
谢谢各位的解答

解决就好
页: [1]
查看完整版本: 关于函数没有return,则返回为None是否这样理解(详情见正文)