欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

python調試神器PySnooper的使用

系統 1847 0

相信很多小伙伴平時寫python的時候都是需要調試程序的,出問題了,需要了解函數內部是怎么跑的,而這個時候很多人都會想到在疑惑的地方使用print函數來打印一下參數來調試。雖然用print也是不失為是一種方法,但是有時如果疑惑的地方多就要每個地方都要加print,這樣就顯得比較麻煩了。

今天發現在Github開源了一個神器,可以清楚讓你清楚了解函數內部的運行以及參數值的變化,PySnooper,項目地址:https://github.com/cool-RR/PySnooper

使用簡單,強大,誰用誰知道它的好!下面簡單說一下PySnooper的用法:

這個工具使用起來很簡單,首先直接可以使用 pip 安裝:pip install pysnooper使用時,只需要在每個函數前面添加裝飾器即可。
給個簡單例子看看就知道了,

            
import pysnooper
@pysnooper.snoop()
def removeDuplicates(nums):
  """
  :type nums: List[int]
  :rtype: int
  """
  flag = 0
  i=1
  while i
            
              =2:
        del nums[i-1]
        i-=1
    else:
      i+=1
      flag=0
  return len(nums)

nums = [1,1,1,2]
print(removeDuplicates(nums))


            
          

添加裝飾器后,運行代碼就會輸出對應函數的執行數據

Starting var:.. nums = [1, 1, 1, 2]
13:03:44.990194 call??????? 11 def removeDuplicates(nums):
13:03:44.990695 line??????? 16???? flag = 0
New var:....... flag = 0
13:03:44.990695 line??????? 17???? i=1
New var:....... i = 1
13:03:44.990695 line??????? 18???? while i 13:03:44.990695 line??????? 19???????? if nums[i]==nums[i-1]:
13:03:44.990695 line??????? 20???????????? flag+=1
Modified var:.. flag = 1
13:03:44.990695 line??????? 21???????????? i+=1
Modified var:.. i = 2
13:03:44.991193 line??????? 22???????????? if flag>=2:
13:03:44.991193 line??????? 18???? while i 13:03:44.991193 line??????? 19???????? if nums[i]==nums[i-1]:
13:03:44.991193 line??????? 20???????????? flag+=1
Modified var:.. flag = 2
13:03:44.991193 line??????? 21???????????? i+=1
Modified var:.. i = 3
13:03:44.991193 line??????? 22???????????? if flag>=2:
13:03:44.991193 line??????? 23???????????????? del nums[i-1]
Modified var:.. nums = [1, 1, 2]
13:03:44.991193 line??????? 24???????????????? i-=1
Modified var:.. i = 2
13:03:44.991193 line??????? 18???? while i 13:03:44.991193 line??????? 19???????? if nums[i]==nums[i-1]:
13:03:44.991193 line??????? 26???????????? i+=1
Modified var:.. i = 3
13:03:44.991693 line??????? 27???????????? flag=0
Modified var:.. flag = 0
13:03:44.991693 line??????? 18???? while i 13:03:44.991693 line??????? 28???? return len(nums)
13:03:44.991693 return????? 28???? return len(nums)
Return value:.. 3

當然如果嫌棄這個直接輸出內容還想保存日志記錄的話,這個裝飾器還幾個可選參數,例如:

            
@pysnooper.snoop('log/file.log')
          

先創建好log目錄,然后將日志輸出到file文件中。

            
@pysnooper.snoop(prefix='removeDuplicates: ')
          

給調試的行加個前綴名便于辨識和定位,這個參數適用于如果同時調試多個函數使用,我這里的例子是使用了函數名稱來作為前綴名,摘抄一點日志記錄如下:

            
removeDuplicates: Starting var:.. nums = [1, 1, 1, 2]
removeDuplicates: 13:53:14.322036 call    11 def removeDuplicates(nums):
removeDuplicates: 13:53:14.323037 line    16   flag = 0
          
            
@pysnooper.snoop(variables=('foo.bar', 'self.whatever'))
          

查看非本地變量

            
@pysnooper.snoop(depth=2)
          

顯示函數中調用函數的snoop行,depth參數的取值范圍是大于或等于1的正整數,在源碼里有這樣一個判斷:assert self.depth >= 1,當取小于1的值就會拋異常

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美日韩在线看 | 国产欧美日韩亚洲精品区2345 | 九九九热在线精品免费全部 | 视频在线一区二区 | 欧美性黑人极品 hd 无码一区二区三区曰本A片 | 天天摸日日干 | a级片免费观看视频 | 成人福利在线视频 | 亚洲高清在线 | 国产一区二区三区不卡在线观看 | 特黄a大片免费视频 | 久久97精品久久久久久久看片 | 葫芦娃污视频 | 啪一啪在线视频 | xxnxx中国18 | 成人午夜免费在线视频 | 日韩亚洲视频 | 欧美成人免费高清网站 | 美女用震蛋叫爽的视频95视频 | 清草在线视频精品 | 亚洲精品久久久一区二区三区 | 国产乱肥老妇国产一区二 | 好大好爽快点视频 | 欧美在线免费 | 乳欲人妻办公室奶水在线电影国产 | 国产欧美曰韩一区二区三区 | 国产精品久久久久久亚洲调教 | 国产aⅴ一区二区三区 | 成人二区三区 | 伊人青青操 | 国产一区在线观看视频 | 久久伊人亚洲 | 高清国产激情视频在线观看 | 欧美黄视频网站 | 永久免费av | 亚洲精品视频在线 | 成人黄色毛片 | 老妇毛片 | 九九导航 | 成人啪啪97丁香 | 中文乱码一二三四有限公司 |