• Python进阶学习之阅读代码


    起因

    在这个过程中,学习到了一些东西,同时整理了自己以前的一些收获,然后分享给大家,有不对的地方还望海涵、指正。

    阅读代码有助于处理bug

    阅读代码是一项更重要的技能,在大学编程语言的考试中也有相关的考察——代码填空、代码查错。在工作中用到的地方更多:

    1. 查找bug
    2. 参与到已有的项目
    3. 接手别人的工作
    4. 开源项目的二次开发

    python是解释性语言,不需要反编译就可以看到源代码,利于查找bug。在找bug的时候,最重要的是定位bug的位置,比较直观的bug是通过阅读异常可以定位到bug的位置。而有的异常信息,例如:AttributeError: 'NoneType' object has no attribute 'get' 会让你觉得很费解,因为你本以为这个肯定有值,怎么就是None了呢?这个时候,你可以在异常定位的位置前面,把这个object的值打印出来,重新调试。察看这个值到底是什么,然后一步步的向上找到,是什么地方操作了这个对象使得它的值为None,造成了这个异常(当然也可以使用通过ide调试模式进行排查,本文重点是阅读代码,所以就不介绍 打断点决解bug的方法 了)。

    综合上面的讲的:阅读代码,定位到问题的位置,然后打印出来!这样有利于分析问题,解决问题。

    为什要先说这个技能,因为当我们用一个我们不熟悉、文档不完全的库、类、方法或者函数的时候,通常会遇到问题,通过上面的方法,定位到问题,通过输出值,阅读代码。退后推敲出问题的原因,就可以很快的找到解决办法。当然,这个方法也不是什么bug能够解决的,但是通过上面的方法尝试解决不成功后,再拿着这个bug去问别人的时候,就可以具体到某个方法,精确的提问。大家的时间都很宝贵,如果你提出一个泛泛的问题、没有自己尝试解决过的问题,那么谁也无法给你一个好的解答(同时可以减少被批评的次数。。。。😓(注意看异常信息很重要,我曾经就拿很多低级问题去问我师父,我师傅走过来一看:你把这个异常提示给我翻一下。

    1. def open_url(url:
    2. ^
    3. SyntaxError: invalid syntax

    原来是忘了写')'。。。。😅)

    阅读代码有助于提高自己的编程水平

    阅读源代码也是提高编码能力的一种途径,就像临摹大师的画一样。可以通过观摩理解,吸收别人的智慧与技巧提高自己的能力。因为,工作上需要用flask,因为最开始自己学习flask的时候就对flask中的全局变量:g、request、session等,全局变量觉得很奇怪。request是全局变量,但是每个请求的request都是不一样,在我调用request对象的时候并没有指定是那个请求的request,flask怎就能给我当前请求的request?通过查阅资料,再加上自己阅读flask的代码:

    1. class Local(object):
    2. ## request对象是Local的实例
    3. __slots__ = ('__storage__', '__ident_func__')
    4. def __init__(self):
    5. ##
  • 相关阅读:
    使用vscode Container开发调试envoy
    修改WPF程序集名称报错
    应用软件安全编程--21避免使用不安全的哈希算法
    nginx.3——local的优先级和匹配方式
    实验二 进程创建
    一个Vue3数字框区间指令及其衍生的一个知识点
    时序预测 | MATLAB实现GM(1,1)灰色时间序列预测
    动静图结合详解: 归并排序 ,计数排序
    PTE-精听学习(三)
    Visual Studio Code 从英文界面切换中文
  • 原文地址:https://blog.csdn.net/m0_72557783/article/details/128207377