首页>新闻详情

Python10个开发技巧

来源:石家庄IT培训学院 时间:2022/5/24 16:04:09

  如何在运行状态查看源代码

  查看函数的源代码,我们通常会使用 IDE 来完成。

  比如在 PyCharm 中,你可以 Ctrl +鼠标点击进入函数的源代码。

  那如果没有 IDE 呢?

  当我们想使用一个函数时,如何知道这个函数需要接收哪些参数呢?

  当我们在使用函数时出现问题的时候,如何通过阅读源代码来排查问题所在呢?

  这时候,我们可以使用 inspect 来代替 IDE 帮助你完成这些事:

  运行结果如下:

  如何关闭异常自动关联上下文

  当你在处理异常时,由于处理不当或者其他问题,再次抛出另一个异常时,往外抛出的异常也会携带原始的异常信息。

  就像这样子:

  从输出可以看到两个异常信息:

  如果在异常处理程序或 finally 块中引发异常,默认情况下,异常机制会隐式工作会将先前的异常附加为新异常的 __context__属性。这就是 Python 默认开启的自动关联异常上下文。

  如果你想自己控制这个上下文,可以加个 from 关键字(from 语法会有个限制,就是第二个表达式必须是另一个异常类或实例。)来表明你的新异常是直接由哪个异常引起的。

  输出如下:

  当然,你也可以通过 with_traceback 方法为异常设置上下文__context__属性,这也能在 traceback 更好的显示异常信息。

  后,如果我想彻底关闭这个自动关联异常上下文的机制?有什么办法呢?

  可以使用 raise...from None,从下面的例子上看,已经没有了原始异常。

  快查看包搜索路径的方式

  当你使用 import 导入一个包或模块时,Python 会去一些目录下查找,而这些目录是有级顺序的,正常人会使用 sys.path 查看。

  那有没有更快的方式呢?

  我这有一种连console 模式都不用进入的方法呢!

  你可能会想到这种,但这本质上与上面并无区别:

  这里我要介绍的是比上面两种都方便得多的方法,一行命令即可解决。

  从输出你可以发现,这个列的路径会比 sys.path 更全,它包含了用户环境的目录。

  将嵌套 for 循环写成单行

  我们经常会如下这种嵌套的 for 循环代码:

  这里仅仅是三个 for 循环,在实际编码中,有可能会有更层。

  这样的代码,可读性非常的差,很多人不想这么写,可又没有更好的写法。

  这里介绍一种我常用的写法,使用 itertools 这个库来实现更优雅易读的代码。

上一页下一页

推荐课程更多>

免费申请体验课

石家庄IT培训学院

版权所有:名校网

  • 在线咨询
  • 电话咨询
  • 免费试听