不采用return,采用print

不采用return,采用print

老师您好,实操完视频里的方法后,我用了第二种方法,在定义gen_trans_id这个函数时,不采用return,采用print的形式直接输出

http://img1.sycdn.imooc.com//climg/5ea24812093dff6e07330302.jpg

这个方法在tools.py这个文件里是可以成功运行且输出我们想要的结果的

但是在引用的过程中

http://img1.sycdn.imooc.com//climg/5ea24933098a130503590262.jpg

得到的结果却是:

http://img1.sycdn.imooc.com//climg/5ea2494609f4900d02580080.jpg

我不明白为什么会有三次输出

通过debug我发现了,在date=datetime(2015, 10, 2, 12, 30, 45)这段代码上也做了一次输出

请问老师这是怎么回事呢


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕笑蓉 2020-04-24 15:32:05

同学,你好。因为同学在tools.py里调用了一次gen_trans_id()函数,所以在导包的时候就执行了一次gen_trans_id()函数,导致输出三次的结果,将tools.py文件里的调用删掉即可。http://img1.sycdn.imooc.com//climg/5ea2958809f4db5111530262.jpg

如果解决了你的疑惑,请采纳,祝学习愉快~ 

  • 好的好的,谢谢老师 老师,就这个例子来看,采用print的话,会比较直观地减少代码步骤,而且容易让阅读者理解 那为什么在实际操作中都是默认采用return呢?
    2020-04-24 15:40:04
  • 同学,你好。print多数是用来在开发阶段打印结果值调试代码的,没有return的返回作用,如果在一个函数中调用另一个函数,且需要另一个函数的返回值的话,就要用return,print不会返回函数值。 祝学习愉快~
    2020-04-24 15:51:20
好帮手慕笑蓉 2020-04-24 14:20:35

同学,你好。老师这边测试了同学的代码,只输出了两次结果,同学可以检查以下,是不是代码里还有print语句没有注释导致的,如果还是输出三条结果,可将代码粘贴到问答区,会有老师帮你解决的。

如果解决了你的疑惑,请采纳,祝学习愉快~ 

  • TOOLS: import random from datetime import datetime def gen_trans_id(date = None): if date is None: date = datetime.now() print("{}{}".format(date.strftime('%Y%m%d%H%M%S%f'),random.randint(100000, 999999))) gen_trans_id() TEST: from datetime import datetime from trans.tools2 import gen_trans_id gen_trans_id() date = datetime(2015, 10, 2, 12, 30, 45) gen_trans_id(date) 老师这是我的代码,麻烦您看一下,我这边输出还是显示的三行
    2020-04-24 15:19:16
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
1.Python零基础入门
  • 参与学习           人
  • 提交作业       2727    份
  • 解答问题       8160    个

想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师