柿子饼同学 发表于 2021-5-11 20:31:14

函数的返回值

>>> def say():
        print('好耶!')

>>> say()
好耶!
>>> print(say())
好耶!
None
>>>
为什么直接调用没有None?
print有什么神奇功效嘛?
谢谢~

suchocolate 发表于 2021-5-11 20:34:59

函数不写return,默认返回None。
单独执行say(), 没有谁接收返回值None,所以没有输出。
执行print(say()),实际是先执行了一遍say(),然后say函数的返回值被print函数接到了,它打印了返回值。

qq1151985918 发表于 2021-5-11 20:35:10

直接调用也有None,只是没有打印。函数本身如果没有返回值,默认返回None

Twilight6 发表于 2021-5-11 20:36:16


不是 print 神奇~ ,是 Python 的机制:若函数没有设置返回值(return) 则默认返回空即 None

print 函数只是将返回值打印到屏幕上而已,当你在交互窗口调用一个函数时候,会自动打印除 None 的返回值

但是如果在编辑器内调用函数没有执行 print 那么就不会自动打印到屏幕上

柿子饼同学 发表于 2021-5-11 20:46:21

Twilight6 发表于 2021-5-11 20:36
不是 print 神奇~ ,是 Python 的机制:若函数没有设置返回值(return) 则默认返回空即 None

print...

那False, 0, [], {} 这样的不是跟None一样嘛,为什么他们可以直接返回?

柿子饼同学 发表于 2021-5-11 20:47:31

qq1151985918 发表于 2021-5-11 20:35
直接调用也有None,只是没有打印。函数本身如果没有返回值,默认返回None

可是它不是就返回了一行嘛,None是不是要再空一行什么的

柿子饼同学 发表于 2021-5-11 20:48:29

suchocolate 发表于 2021-5-11 20:34
函数不写return,默认返回None。
单独执行say(), 没有谁接收返回值None,所以没有输出。
执行print(say() ...

谢谢你~{:10_275:}

wp231957 发表于 2021-5-11 21:11:49

柿子饼同学 发表于 2021-5-11 20:46
那False, 0, [], {} 这样的不是跟None一样嘛,为什么他们可以直接返回?

返回值和print是两个概念,话不多说
你也不是新人

柿子饼同学 发表于 2021-5-11 21:27:36

本帖最后由 柿子饼同学 于 2021-5-11 21:33 编辑

wp231957 发表于 2021-5-11 21:11
返回值和print是两个概念,话不多说
你也不是新人

那None和False之类不是都是假嘛,有什么区别呐?

xyangt 发表于 2021-5-11 21:38:42

函数不写return,默认返回None。
单独执行say(), 没有谁接收返回值None,所以没有输出。
执行print(say()),实际是先执行了一遍say(),然后say函数的返回值被print函数接到了,它打印了返回值。

柿子饼同学 发表于 2021-5-11 22:36:43

xyangt 发表于 2021-5-11 21:38
函数不写return,默认返回None。
单独执行say(), 没有谁接收返回值None,所以没有输出。
执行print(say() ...

谢谢~{:10_275:}

Twilight6 发表于 2021-5-11 23:00:31

柿子饼同学 发表于 2021-5-11 20:48
谢谢你~



不一样哈,数据类型都不一样

None 是 Python 特殊的一个数据对象,数据类型为 NoneType,而且 NoneType 类中仅有 None 这一个对象

我们不能创建除 None 以外为 NoneType 的对象

而 False 属于 布尔类型数值,[] 表示空列表 list 类型数据 ,{} 表示空字典,dict 类型数据

但是 空列表、空字典、空字符串 以及 None 都可以视为布尔类型值的 False,(这里的视为不是指等于哈,是指逻辑的真假)

具体为什么只有 None 不打印,应该就需要去看底层代码了,但是这个对象确实是一个特殊的数据类型哈

柿子饼同学 发表于 2021-5-11 23:05:03

Twilight6 发表于 2021-5-11 23:00
不一样哈,数据类型都不一样

None 是 Python 特殊的一个数据对象,数据类型为 NoneType,而且 N ...

学到了,谢谢~{:10_297:}{:10_275:}

Twilight6 发表于 2021-5-11 23:06:38

柿子饼同学 发表于 2021-5-11 23:05
学到了,谢谢~



客气~{:10_278:}

柿子饼同学 发表于 2021-5-11 23:19:19

Twilight6 发表于 2021-5-11 23:06
客气~

{:10_256:}

xyangt 发表于 2021-5-13 11:07:46

学习学习了{:5_107:}
页: [1]
查看完整版本: 函数的返回值