Monamie 发表于 2021-11-22 21:15

Python中有一个没搞懂,希望请教一下懂的人

Python函数高级用法之一就是将函数当做值赋给变量def my_def():   print('直接调用')b = my_def()那么上面b=my_def()应该是将my_def()函数赋给变量b,为什么赋值过程中my_def()函数就被执行了?

machi 发表于 2021-11-22 22:04

调用即执行

weefun92 发表于 2021-11-22 22:13

你如果想把函数赋值给变量b,应该这么写 b = my_def

b = my_def() 这段代码是将 my_def() 函数执行过后,将该函数的返回值赋值给 b

PGH927 发表于 2021-11-22 23:09

加了()表示调用这个函数,调用就要执行
如果想让函数赋值要这样写
b=my_def

似水流年2015 发表于 2021-11-23 00:14

weefun92 发表于 2021-11-22 22:13
你如果想把函数赋值给变量b,应该这么写



my_def( )里没有写return,应该不能说是把返回值 赋值给b吧??????
只能说是执行了它???
我只是个菜鸟

luyers 发表于 2021-11-23 07:25

似水流年2015 发表于 2021-11-23 00:14
my_def( )里没有写return,应该不能说是把返回值 赋值给b吧??????
只能说是执行了它???
我只 ...

python函数 如果不写return 默认return None

weefun92 发表于 2021-11-23 08:04

luyers 发表于 2021-11-23 07:25
python函数 如果不写return 默认return None

正解,没有具体的返回值就默认返回None

13286246768 发表于 2021-11-23 08:33

有括号代表实例化 已经去调用了这个函数 那就执行函数 函数有个打印语句 执行即打印控制台

zucker 发表于 2021-11-23 09:33

你这个没有值啊

MyModHeaven 发表于 2021-11-23 14:19

python 是一种脚本语言,脚本语言采用解释的方式执行,解释是将源代码逐条转换成目标代码同时逐条运行目标代码的过程,而且是从上到下解释。
当运行这三行代码的时候,解释器先看def语句,然后看函数体,最后看赋值语句。在看赋值语句之前,不会执行print语句,只要没有语法错误就走马观花地过去了。但是当看到赋值语句的时候,就会调用函数,看看等号右侧到底是个什么东西。最后证明,b = None,至于控制台输出 直接调用 就是函数在执行的过程中的产物
页: [1] 2
查看完整版本: Python中有一个没搞懂,希望请教一下懂的人