
def run(a,b,c): if a == b : c a = 1 b = 1 c = print('1') run(a,b,c)
1、为什么没有报错? 2、执行过程中到底执行了哪个 c ?
1 zhanglintc 2018-05-15 15:55:19 +08:00 这个代码咋看啊... |
2 20032009 OP def run(a,b,c): if a == b : c a = 1 b = 1 c = print('1') run(a,b,c) |
3 blodside 2018-05-15 15:56:50 +08:00 >>> def run(a,b,c): if a == b : c a = 1 b = 1 c = print('1') run(a,b,c) File "<stdin>", line 1 def run(a,b,c): if a == b : c a = 1 b = 1 c = print('1') run(a,b,c) ^ SyntaxError: invalid syntax |
4 20032009 OP def run(a,b,c): if a == b : c # a = 1 b = 1 c = print('1') run(a,b,c) |
5 ballshapesdsd 2018-05-15 15:59:33 +08:00 print 函数返回值是 None。。 |
6 magicO 2018-05-15 15:59:47 +08:00 同楼上, 语法错误 |
8 20032009 OP 格式是这样(是空格): def run(a,b,c): if a == b : c a = 1 b = 1 c = print('1') run(a,b,c) 我的上面正常运行,而且打印出 1 |
10 rabbbit 2018-05-15 16:05:23 +08:00 |
11 holajamc 2018-05-15 16:05:44 +08:00 c 就是你定义的 print('1') 呀,函数的参数可以是另外一个函数) |
12 magicO 2018-05-15 16:06:58 +08:00 11L 正解,没毛病啊 |
13 20032009 OP 在执行 6 行时,c = print('1') 这个地方 print 执行了 在 run()里面的 c 也应该被执行啊,那应该打印出两个 1 |
14 20032009 OP @magicO 在执行 6 行时,c = print('1') 这个地方 print 执行了 在 run()里面的 c 也应该被执行啊,那应该打印出两个 1 |
15 rabbbit 2018-05-15 16:13:37 +08:00 你是不是对函数 /变量有什么误解 调用一个函数的格式方式: 函数名([参数]) print('1')返回的是 None,不是一个函数 |
16 magicO 2018-05-15 16:13:59 +08:00 @20032009 没有啊,一旦赋值就不是那样了。 虽然我也不懂更深层的原理,但似乎第一天写 python 就感觉应该是这样。搬板凳听大佬解释 |
17 freeminder 2018-05-15 16:18:47 +08:00 看的我这个难受,你要是说"执行了 print", 那就只有 c = print('1') 这一句执行了 print。c 在这句之后就是一个函数调用的返回值。你在 run 里面写的那个 c,可能是想要完成执行一个函数的事情?但是就算 c 在 run 中是一个函数引用-比如 lambda 创建的,你也得给人家一个括号吧-c()。 |
18 FrailLove 2018-05-15 16:19:56 +08:00 a = 1; b = 1; print('1') 任何函数不 return 默认返回 None 打印出 1 后 c= None 执行 run(1 ,1 ,None) 什么都不做 |
19 clino 2018-05-15 16:20:12 +08:00 via Android 为什么不用 gist 贴代码? |
20 20032009 OP 谢谢大家,问题解决。打算入编程坑,努力成为大神中...... |
21 whoami9894 2018-05-15 16:32:21 +08:00 via Android c 被赋值为 print 函数的返回值,为 none。 如果 c 被赋值为函数的话后面得有()调用函数操作符 |
22 MartinWu 2018-05-15 16:36:26 +08:00 c 是 print("1")的返回值,也就是 None。并不是这个语句本身。 |
23 1daydayde 2018-05-16 08:02:42 +08:00 via iPhone 貌似有个标准错误输出流 了解一下? |