加入收藏 | 设为首页 | 会员中心 | 我要投稿 我爱制作网_沈阳站长网 (https://www.024zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

承诺我,别再用Print调 试Python了!

发布时间:2022-12-05 12:42:44 所属栏目:语言 来源:
导读:  举个例子,运行下面这个程序。

  num1 = 30

  num2 = 40

  print(num1)

  print(num2)

  输出结果。

  30

  40

  这些输出中哪一个是num1?哪一个又是
  举个例子,运行下面这个程序。
 
  num1 = 30  
 
  num2 = 40   
 
  print(num1)  
 
  print(num2)
 
  输出结果。
 
  30  
 
  40
 
  这些输出中哪一个是num1?哪一个又是num2呢?
 
  找出两个输出可能不是很困难,但是如果有五个以上的不同输出呢?尝试查找与输出相关的代码可能会很耗时。
 
  当然你可以在打印语句中添加文本,使其更容易理解:
 
  num1 = 30  
 
  num2 = 40   
 
  print("num1" num1)  
 
  print("num2" num1)
 
  输出结果。
 
  num1 30  
 
  num2 40
 
  这个结果就很容易理解了,但是需要时间去写相关的信息。
 
  这时就该「Icecream」上场了~
 
  01. 什么是Icecream?
 
  Icecream是一个Python第三方库,可通过最少的代码使打印调试更清晰明了。
 
  使用pip安装Icecream库。
 
  pip install icecream
 
  下面,让我们通过打印Python函数的输出来进行尝试。
 
  from icecream import ic   
 
  def plus_five(num):  
 
      return num + 5  
 
  ic(plus_five(4))  
 
  ic(plus_five(5))
 
  输出结果如下。
 
  ic| plus_five(4): 9  
 
  ic| plus_five(5): 10
 
  通过使用icecream,我们不仅可以看到函数输出,还可以看到函数及其参数!
 
  02. 检查执行情况
 
  如果你想要找到执行代码的位置,可以通过执行如下所示的操作,来查找执行了哪个语句。
 
  def hello(user:bool):  
 
      if user:  
 
          print("I'm user")  
 
      else:  
 
          print("I'm not user")  
 
  hello(user=True)
 
  输出结果。
 
  I'm user
 
  使用icecream则无需多余的文本信息,就可以轻松地完成上述的操作。
 
  from icecream import ic   
 
  def hello(user:bool):  
 
      if user:  
 
          ic()  
 
      else:  
 
          ic()  
 
  hello(user=True)
 
  输出结果如下。
 
  ic| ice_1.py:5 in hello() at 02:34:41.391
 
  从输出结果看,函数hello中的第5行的代码已被执行,而第7行的代码未执行。
 
  03. 自定义前缀
 
  如果您想在打印语句中插入自定义前缀(例如代码执行时间),icecream也是能实现的。
 
  from datetime import datetime  
 
  from icecream import ic   
 
  import time  
 
  from datetime import datetime  
 
  def time_format():  
 
      return f'{datetime.now()}|> '  
 
  ic.configureOutput(prefix=time_format)  
 
  for _ in range(3):  
 
      time.sleep(1)  
 
      ic('Hello')
 
  输出结果如下。
 
  2021-01-24 10:38:23.509304|> 'Hello'  
 
  2021-01-24 10:38:24.545628|> 'Hello'  
 
  2021-01-24 10:38:25.550777|> 'Hello'
 

(编辑:我爱制作网_沈阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!