python进阶(一)
一.调试Debugging应用
(1)命令行内运行
$ python -m pdb my_script.py 这会触发debugger在脚本第⼀⾏指令处停⽌执⾏。这在脚本很短时会很有帮助。你可以通过(Pdb)模式接着查看变量信息,并且逐⾏调试。
(2)从脚本内部运行 同时,你也可以在脚本内部设置断点,这样就可以在某些特定点查看变量信息和各种执⾏时信息了。这⾥将使⽤pdb.set_trace()⽅法来实现。举个例⼦:
import pdb
def make_bread():
pdb.set_trace()
return "I don't have time"
print(make_bread())
试下保存上⾯的脚本后运⾏之。你会在运⾏时马上进⼊debugger模式。现在是时候了解下debugger模式下的⼀些命令了。
命令列表:
c: 继续执⾏
w: 显⽰当前正在执⾏的代码⾏的上下⽂信息
a: 打印当前函数的参数列表
s: 执⾏当前代码⾏,并停在第⼀个能停的地⽅(相当于单步进⼊)
n: 继续执⾏到当前函数的下⼀⾏,或者当前⾏直接返回(单步跳过)
单步跳过(next)和单步进⼊(step)的区别在于, 单步进⼊会进⼊当前⾏调⽤的函数内部并停在⾥⾯, ⽽单步跳过会(⼏乎)全速执⾏完当前⾏调⽤的函数,并停在当前函数的下⼀⾏。pdb真的是⼀个很⽅便的功能,上⾯仅列举少量⽤法,更多的命令强烈推荐你去看官⽅⽂档。
参考地址:https://docs.python.org/2/library/pdb.html Or https://docs.python.org/3/library/pdb.html
二.对象自省
⾃省(introspection),在计算机编程领域⾥,是指在运⾏时来判断⼀个对象的类型的能⼒。它是Python的强项之⼀。Python中所有⼀切都是⼀个对象,⽽且我们可以仔细勘察那些对象。Python还包含了许多内置函数和模块来帮助我们。
(1)dir()自省的内置函数,它返回一个列表,列表中包含它的属性和方法
(2)type和id,type用于查看其对象类,id用于查看其对应的内存地址
(3)inspect模块,inspect模块也提供了许多有⽤的函数,来获取活跃对象的信息。
三.python的一行式命令
(1)简易版的web server,进入你需要共享文件目录下,输入指令:
#python2
python -m SimpleHTTPServer
#python3
python -m http.server
详见官方文档:https://wiki.python.org/moin/Powerful%20Python%20One-Liners