一.调试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

 

python进阶(一)的更多相关文章

  1. Python进阶:函数式编程实例(附代码)

    Python进阶:函数式编程实例(附代码) 上篇文章"几个小例子告诉你, 一行Python代码能干哪些事 -- 知乎专栏"中用到了一些列表解析.生成器.map.filter.lam ...

  2. Python进阶 - 对象,名字以及绑定

    Python进阶 - 对象,名字以及绑定 1.一切皆对象 Python哲学: Python中一切皆对象 1.1 数据模型-对象,值以及类型 对象是Python对数据的抽象.Python程序中所有的数据 ...

  3. Python进阶-继承中的MRO与super

    Python进阶-继承中的MRO与super 写在前面 如非特别说明,下文均基于Python3 摘要 本文讲述Python继承关系中如何通过super()调用"父类"方法,supe ...

  4. Python进阶 - 命名空间与作用域

    Python进阶 - 命名空间与作用域 写在前面 如非特别说明,下文均基于Python3 命名空间与作用于跟名字的绑定相关性很大,可以结合另一篇介绍Python名字.对象及其绑定的文章. 1. 命名空 ...

  5. python进阶学习笔记(一)

    python进阶部分要学习的内容: 学习目标: 1.函数式编程 1.1,什么是函数式编程 函数式编程是一种抽象计算的编程模式 不同语言的抽象层次不同: 函数式编程的特点: python支持的函数式编程 ...

  6. 【python进阶】详解元类及其应用2

    前言 在上一篇文章[python进阶]详解元类及其应用1中,我们提到了关于元类的一些前置知识,介绍了类对象,动态创建类,使用type创建类,这一节我们将继续接着上文来讲~~~ 5.使⽤type创建带有 ...

  7. 【python进阶】Garbage collection垃圾回收2

    前言 在上一篇文章[python进阶]Garbage collection垃圾回收1,我们讲述了Garbage collection(GC垃圾回收),画说Ruby与Python垃圾回收,Python中 ...

  8. Python进阶 函数式编程和面向对象编程等

    函数式编程 函数:function 函数式:functional,一种编程范式.函数式编程是一种抽象计算机的编程模式. 函数!= 函数式(如计算!=计算机) 如下是不同语言的抽象 层次不同 高阶函数: ...

  9. 【python进阶】深入理解系统进程2

    前言 在上一篇[python进阶]深入理解系统进程1中,我们讲述了多任务的一些概念,多进程的创建,fork等一些问题,这一节我们继续接着讲述系统进程的一些方法及注意点 multiprocessing ...

  10. Python进阶:如何将字符串常量转化为变量?

    前几天,我们Python猫交流学习群 里的 M 同学提了个问题.这个问题挺有意思,经初次讨论,我们认为它无解. 然而,我认为它很有价值,应该继续思考怎么解决,所以就在私密的知识星球上记录了下来. 万万 ...

随机推荐

  1. spark优化参数调节和故障参数调节

    1:“物尽其用”,但给spark分配多个机器后,先需配置spark-submit shell如下: /usr/local/spark/bin/spark-submit \ --class com.sp ...

  2. 2018-2019-2 20165225《网络对抗技术》Exp1 缓冲区溢出实验

    2018-2019-2 20165225<网络对抗技术>Exp1 缓冲区溢出实验 声明 虽然老师在邮箱中要求要把虚拟机名改为个人名字缩写,但是我的kali好像不是很听话...重启数次也没用 ...

  3. 类的命名空间&组合

    类的命名空间◆类中的静态变量可以被类调用也可以被对象调用◆对不可变数据类型来说,类变量最好用类名操作 class Person: money = 0 mother = Person() father ...

  4. Angular系列文章之angular路由

    路由(route),几乎所有的MVC(VM)框架都应该具有的特性,因为它是前端构建单页面应用(SPA)必不可少的组成部分. 那么,对于angular而言,它自然也有内置的路由模块:叫做ngRoute. ...

  5. [Android]使用Spring for Android改善数据交互流程

    如果开发一个和服务端有数据交互android应用,流程通常是这样的:界面收集用户数据之后,将它转换成JSON或者XML格式的字符串,以HTTP的方式提交给服务端,获得返回的文本数据,再将数据解析为ja ...

  6. 2019春第七周作业Compile Summarize

    这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 在这里 我在这个课程的目标是 能更加进一步的够熟练掌握指针的用法 这个作业在那个具体方面帮助我实现目标 指针对于基础题目的做法 参考文献与 ...

  7. MATLAB多项式运算

    序言 none 正文  1. 多项式的表示 在Matlab中,多项式用一个行向量表示, 行向量的元素值为多项式系数按幂次的降序排列, 如p(x)=x3-2x-5用P=[1,0,-2,-5]表示. 2. ...

  8. Java -- 基于JDK1.8的ArrayList源码分析

    1,前言 很久没有写博客了,很想念大家,18年都快过完了,才开始写第一篇,争取后面每周写点,权当是记录,因为最近在看JDK的Collection,而且ArrayList源码这一块也经常被面试官问道,所 ...

  9. CentOS 7 zabbix添加监控服务器

    CentOS 7 yum安装zabbix 设置中文界面 安装环境 CentOS 7  关闭防火墙和SElinux 在被监控端安装zabbix-agent [root@zabbix-agent ~]# ...

  10. 【转】Powershell与jenkins集成部署的运用(powershell运用)

    powershell简介: 远程管理采用的一种新的通信协议,Web Services for Management,简称WS-MAN它通过http或者https进行工作,WS-WAN的实现主要基于一个 ...