STUNUM

面有萌色,胸有丘壑。心有猛虎,细嗅蔷薇。

嗨,我是王鑫 (@stunum),一名 Python 开发者。


Python web开发,后端以Django框架为主,前端使用Vue.js...

python调试神器之PySnooper

安装 PySnooper

pip install pysnooper

举个例子(来自官网)

import pysnooper

@pysnooper.snoop()
def number_to_bits(number):
    if number:
        bits = []
        while number:
            number, remainder = divmod(number, 2)
            bits.insert(0, remainder)
        return bits
    else:
        return [0]

number_to_bits(6)
输出内容:
Starting var:.. number = 6
15:29:11.327032 call         4 def number_to_bits(number):
15:29:11.327032 line         5     if number:
15:29:11.327032 line         6         bits = []
New var:....... bits = []
15:29:11.327032 line         7         while number:
15:29:11.327032 line         8             number, remainder = divmod(number, 2)
New var:....... remainder = 0
Modified var:.. number = 3
15:29:11.327032 line         9             bits.insert(0, remainder)
Modified var:.. bits = [0]
15:29:11.327032 line         7         while number:
15:29:11.327032 line         8             number, remainder = divmod(number, 2)
Modified var:.. number = 1
Modified var:.. remainder = 1
15:29:11.327032 line         9             bits.insert(0, remainder)
Modified var:.. bits = [1, 0]
15:29:11.327032 line         7         while number:
15:29:11.327032 line         8             number, remainder = divmod(number, 2)
Modified var:.. number = 0
15:29:11.327032 line         9             bits.insert(0, remainder)
Modified var:.. bits = [1, 1, 0]
15:29:11.327032 line         7         while number:
15:29:11.327032 line        10         return bits
15:29:11.327032 return      10         return bits
Return value:.. [1, 1, 0]
  • 指定输出到文件

    @pysnooper.snoop('/my/log/file.log')
    
  • 查看一些非局部变量的表达式的值

    @pysnooper.snoop(watch =(' foo.bar ',' self.x [“whatever”] '))
    
  • 展开值以查看其所有属性或列表/词典项

    @pysnooper.snoop(watch_explode =(' foo ',' self '))
    

更多到用法请自行查看官方文档

PySnooper文档链接

最近的文章

vscode进行vue格式化时,会自动补分号和双引号的问题

用vscode来开发vue是一个很不错的选择,特别是安装了一些插件辅助之后,简直如虎添翼。但是由于vue的严格检查模式下,vetur插件的自动格式化会在代码尾部添加分号和把单引号变为双引号,导致出现错误提示!解决问题的办法就是修改settings.json文件的配置,亲测有效!"vetur.format.defaultFormatterOptions": { "prettier": { "semi": false, "singleQuote": true }}"javas...…

奇技淫巧继续阅读
更早的文章

node.js的多版本管理器——nvm

快捷安装nvm的两种方法//使用curlcurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash//或者使用wgetwget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bashnvm的使用方法Usage: nvm --help ...…

水滴石穿继续阅读