• 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. ##
  • 相关阅读:
    洗地机哪款最好用?口碑最好的家用洗地机推荐
    【力扣每日一题】1175. 质数排列
    教程详解从照片到倾斜摄影模型、影像地形点云的成果输出,网页端Web发布展示
    【第2章 Node.js基础】2.2 Node.js回调函数
    MATLAB实战应用-【数据处理篇】数据清洗(从方法论到实战应用)
    集合—Collections工具类
    Impact of Problem Decomposition on Cooperative Coevolution
    HTML期末学生大作业-节日网页作业html+css+javascript
    Tableau 10 中的顶级可视化技术
    餐厅灭火系统市场现状及未来发展趋势分析
  • 原文地址:https://blog.csdn.net/m0_72557783/article/details/128207377