鱼C论坛

 找回密码
 立即注册
查看: 1350|回复: 9

[已解决]请问 我这段代码打印出来的结果中 None 是怎么来的

[复制链接]
发表于 2018-7-6 22:15:47 | 显示全部楼层 |阅读模式
6鱼币
请问 我这段代码打印出来的结果中 None 是怎么来的?
  1. class C:
  2.     @staticmethod
  3.     def static(arg1, arg2, arg3):
  4.         print(arg1, arg2, arg3, arg1 + arg2 + arg3)

  5.     def nostatic(self):
  6.         print("I'm the f**king normal method!")

  7. a = C()
  8. print(a.static(3,6,9))
  9. print(a.nostatic())
复制代码

输出:

  1. 3 6 9 18
  2. None
  3. I'm the f**king normal method!
  4. None

  5. Process finished with exit code 0
复制代码
最佳答案
2018-7-6 22:15:48
楼上说的意思很对,只是没表达清楚。你的print(a.static(3,6,9))和print(a.nostatic()),相当于把static和nostatic这两个方法的返回值打印出来,而方法的返回值是用return给出来的,然而你这两个方法都没有return哦,就默认为空即Nonel,所以打印出来None。
打印顺序是,先执行a.static(3,6,9)即static里面的print,输出3 6 9 18
然后print(a.static(3,6,9)),输出为None
接着执行a.nostatic()即执行nostatic里面的print,输出I'm the f**king normal method!
然后print(a.nostatic()),即输出方法的返回值,即None

最佳答案

查看完整内容

楼上说的意思很对,只是没表达清楚。你的print(a.static(3,6,9))和print(a.nostatic()),相当于把static和nostatic这两个方法的返回值打印出来,而方法的返回值是用return给出来的,然而你这两个方法都没有return哦,就默认为空即Nonel,所以打印出来None。 打印顺序是,先执行a.static(3,6,9)即static里面的print,输出3 6 9 18 然后print(a.static(3,6,9)),输出为None 接着执行a.nostatic()即执行nostatic里面的print,输出I'm ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-7-6 22:15:48 | 显示全部楼层    本楼为最佳答案   
楼上说的意思很对,只是没表达清楚。你的print(a.static(3,6,9))和print(a.nostatic()),相当于把static和nostatic这两个方法的返回值打印出来,而方法的返回值是用return给出来的,然而你这两个方法都没有return哦,就默认为空即Nonel,所以打印出来None。
打印顺序是,先执行a.static(3,6,9)即static里面的print,输出3 6 9 18
然后print(a.static(3,6,9)),输出为None
接着执行a.nostatic()即执行nostatic里面的print,输出I'm the f**king normal method!
然后print(a.nostatic()),即输出方法的返回值,即None
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-7-6 23:05:32 | 显示全部楼层
你调用的方法没有返回值,把print去掉就可以了,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-7-6 23:50:40 | 显示全部楼层
小默的世界 发表于 2018-7-6 23:30
楼上说的意思很对,只是没表达清楚。你的print(a.static(3,6,9))和print(a.nostatic()),相当于把static和n ...

赞同
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-7-7 01:23:15 From FishC Mobile | 显示全部楼层
二楼说的对
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-7-7 08:45:07 | 显示全部楼层
小默的世界 发表于 2018-7-6 23:30
楼上说的意思很对,只是没表达清楚。你的print(a.static(3,6,9))和print(a.nostatic()),相当于把static和n ...

你好 那这段代码 要怎么改 才不会打印 None  呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-7-7 10:43:07 | 显示全部楼层
你把函数里的print去掉,换成return 。。。。 就可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-7-7 10:49:10 | 显示全部楼层
不会发图,妈个鸡
Cutter_2018-07-07 10_48_25.433.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-7-8 10:09:28 | 显示全部楼层
由矣月刹 发表于 2018-7-7 10:49
不会发图,妈个鸡

知道了  謝謝哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-7-8 10:10:38 | 显示全部楼层
小默的世界 发表于 2018-7-6 22:15
楼上说的意思很对,只是没表达清楚。你的print(a.static(3,6,9))和print(a.nostatic()),相当于把static和n ...

又看看 整明白了  3Q
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 10:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表