`
kula
  • 浏览: 57647 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
  • highill: 在baidu上看了 HTML5与FLASH的斗争和前景分析.d ...
    html5和flash
  • interjc: 问题是html5的标准如何才能完全同意,不要到时候搞得群雄割据 ...
    html5和flash
  • evanmeng: 谷歌地图上早就可以利用点评网的数据显示某地周围的餐饮信息。但我 ...
    openapi 简介

如何提高python程序的可维护性?

阅读更多
如何提高程序的可维护性?

    在接手别人代码的时候。我们常常抱怨前任代码写的太差。导致维护行非常长.最后发现花在维护上的时间
多得足够自己重新写一个。有些人于是抱着奋起一击鱼死网破的态度,推倒重写.结果是浪费了一大票时间。而且
写完之后发现。自己写的代码可维护性往往不见的比前任好多少.

    怎样才能提高程序的可维护性呢? 写文档应该是最容易想到的选择了,完备的文档能让人更易理解程序.

    但编写文档有缺点: 
       1,文档和代码不同步.当代码做出变更时,文档却没有做出类似的变更。
       2,开发时文档的重要性偏低。往往为了赶时间而放弃写文档

    所以我们需要从python中找到一些办法,能够提供高质量的文档。同时又不至于带来过大的负担

    我找到的第一个办法是doctest模块

    看一段代码,知道它怎么使用。是干什么用的。最简单快捷的办法是看例子。有了例子。再想去用就是
照葫芦画瓢了. 所以如果在文档里写上例子.对理解代码会有很大的帮助。
    这些例子用法就是doctest可以提供的

    doctest干什么?
    doctest 模块让您可以在文档字符串(docstrings)内嵌入注释以显示各种语句的期望行为,尤其是
函数和方法的结果。这样做很像是让文档字符串看起来如同一个交互式 shell 会话。

     def big(i,j):
     '''
     doctest:
     >>> big(12,13)
     13
     ''' 
         return i if i > j else j

     if __name__ == '__main__':
         import doctest
         doctest.testmod()
 


     $python test.py -v

     Trying:
    	big(12,13)
     Expecting:
    	13
     ok
     1 items had no tests:
     __main__
     1 items passed all tests:
     1 tests in __main__.big
     1 tests in 2 items.
     1 passed and 0 failed.
     Test passed.
 

  
     在函数下面定义了注释.使用交互式提示符 >>>。在后面写上python语句.就好像是从交互式shell里
拷贝粘贴的一样.然后在下面写出预期的输出. 比如调用big(12,13) 函数返回13。然后通过命令行调用。
就能完成一次单元测试。

     对类的测试也差不多.测试代码如下

     #coding:utf-8
     class Bird:
     """
     doctest:
     >>> bird = Bird('kula')
     >>> bird.song()
     'kula'
     """

         def __init__(self,name):
             self.name = name
        
         def song(self):
             return self.name

     if __name__ == '__main__':
         import doctest
         doctest.testmod()

     $python test.py -v

     Trying:
     	 bird = Bird('kula')
     Expecting nothing
     ok
     Trying:
         bird.song()
     Expecting:
         'kula'
     ok
     3 items had no tests:
         __main__
         __main__.Bird.__init__
         __main__.Bird.song
     1 items passed all tests:
         2 tests in __main__.Bird
     2 tests in 4 items.
     2 passed and 0 failed.
     Test passed.

     由此完成了对这个类的单元测试.同时注释里留下的单元测试教会了我们怎么使用这个类和函数.一举多得!  

     文档在代码里.每次查阅还要翻代码.也不方便.怎么办?
     java里 有一个javadoc模块.可以自动从注释生成文档. python也有类似的模块.有一个模块叫epydoc。
能够根据注释生成非常详尽的文档.
     只需要
     $epydoc --html test.py
     就能在目录下生成一份精美的html文档!

     同时,epydoc有很多有用的标签.如 @type @rtype @param @return 等等.善于利用能制作出非常
漂亮的文档
    










   
分享到:
评论

相关推荐

    Python程序设计(第二版)

    在函数式编程方面,书中的内容可能包括高阶函数、map、filter和reduce等概念,这些工具可以帮助你写出更简洁、更具可维护性的代码。 最后,可能会涉及到一些进阶话题,如异常处理、装饰器、生成器、协程,甚至是...

    python_六自由度平台控制python程序_

    7. **模块化设计**:大型项目通常采用模块化设计,将不同功能封装成独立的模块或类,提高代码复用性和可维护性。Python的面向对象编程特性使得实现这一设计思想变得简单。 8. **文档和测试**:为了便于他人理解和...

    《Python程序设计》-教学资料.zip

    对于初学者,分析已有的源代码有助于提高编程能力,而对进阶者,可以学习到如何编写更高效、可维护的代码。 实验报告是实践教学的反馈,它记录了学生在完成实验任务时的过程、遇到的问题以及解决方案。通过编写实验...

    Python程序设计考试系统的开发与应用.pdf

    基于提供的文件内容,以下是有关Python程序设计考试系统的开发与应用的知识点详细说明: 1. Python语言的特点与应用领域: Python作为一种开放源代码的脚本编程语言,其诞生于20世纪90年代初。它的语法简洁而清晰,...

    python程序设计第三版_python程序设计第三版_

    面向对象编程是现代软件开发的核心思想,通过它,开发者可以更好地组织和管理代码,提高代码的复用性和可维护性。 对于人工智能领域,本书可能会涵盖一些基础的算法和数据结构,如搜索算法(深度优先搜索、广度优先...

    [Python程序设计——从基础入门到实战应用][王雷春][习题解答].zip

    理解函数的使用有助于提高代码的可读性和可维护性。 5. **模块**:Python的模块化设计允许将代码组织在不同的文件中,通过import语句引入。学习如何创建和使用自定义模块,以及标准库中的各种模块,能提高编程效率...

    Python语言程序设计基础源代码,python语言程序设计基础笔记,Python

    模块和包是Python代码组织的重要方式,允许将相关功能分组在一起,提高代码的可维护性和重用性。通过import语句,我们可以导入并使用其他模块中的函数和类。 面向对象编程(OOP)是Python的一大特性,包括类的定义...

    python程序设计课件

    3. **面向对象编程**:Python支持面向对象编程,包括类的定义、对象的创建、继承、封装、多态等概念,这有助于编写复杂、可维护的代码。 4. **文件操作**:学习读取和写入文件,包括文本文件和二进制文件,以及文件...

    《Python程序设计》 电子课件.rar

    通过面向对象编程,可以更好地组织和管理复杂代码,提高代码的复用性和可维护性。 7. 进阶主题:Python还包含许多进阶主题,如文件操作、正则表达式、网络编程、数据库接口、并发编程等。这些知识可以帮助开发者...

    python3程序开发指南

    相比于Python2,Python3在语法、标准库等方面进行了大量的改进和优化,更加注重代码的简洁性和可维护性。 ### Python3程序开发指南核心知识点 #### 1. Python3环境搭建 - **安装Python3**:访问Python官网下载...

    python程序设计的源代码

    理解如何创建和使用自定义模块,以及如何处理模块间的依赖关系,是提高代码可维护性的重要技能。 5. **异常处理**:通过try-except语句,Python提供了异常处理机制,可以捕获并处理运行时错误。了解何时和如何使用...

    python程序设计刘卫国实验指导代码

    理解这些内容对于编写复杂、可维护的代码至关重要。 4. 实验12:数据结构与算法 数据结构如列表、元组、字典和集合,以及基础算法的实现是Python编程的基础。8.8.py可能涉及了排序算法(如冒泡排序、快速排序)、...

    Python程序设计与应用电子课件.rar

    通过实例,他们将理解如何利用OOP来解决复杂问题,提高代码的可读性和可维护性。 第3章:控制流与异常处理 本章深入讲解更复杂的控制流结构,如循环嵌套、break和continue语句。同时,会介绍Python的异常处理机制,...

    python小程序1 python小程序1 python小程序1

    此外,利用Python的面向对象特性,可以创建类来封装相关逻辑,提高代码的复用性和可维护性。 Python的另一个亮点是其丰富的社区和资源。开发者可以通过Stack Overflow、GitHub和Python官方文档等途径获取帮助和学习...

    python + django 小程序

    这有助于分离业务逻辑和表现层,提高代码的可维护性。 6. **文件管理**:在实现文件上传和下载时,需要对文件进行管理和组织。Django的模型层可以帮助定义文件的存储位置,可以是本地文件系统、云存储服务如AWS S3...

    浅谈_Python_程序和_C_程序的整合

    ### Python程序和C程序的整合知识点 #### 一、引言 随着软件开发领域的不断发展,开发者面临着越来越多的挑战,如提高开发效率、优化程序性能等。Python作为一种高级编程语言,以其简洁明了的语法和丰富的第三方库...

    MFC调用Python示例

    在IT领域,跨语言调用是一个常见的需求,特别是在多种技术栈并存的项目中。...在实际开发中,这样的跨语言调用技术可以用于实现复杂任务的分解,充分利用各种语言的优势,提高软件的可维护性和可扩展性。

    实用python程序设计测验.zip

    学会如何通过面向对象的方式组织代码,提高代码的可维护性和可扩展性。 5. **文件操作**:学习如何读写文件,包括文本文件和二进制文件,以及文件的打开、关闭和异常处理。 6. **数据结构**:深入理解Python的高级...

    python程序设计基础与应用.docx

    7. **可重用性与函数技巧**:学生将学习如何编写中间函数、装饰器和偏函数,这些是提高代码复用性和效率的重要工具。装饰器尤其有助于代码的扩展和维护,而偏函数则允许对函数进行部分参数绑定。 8. **文件处理**:...

Global site tag (gtag.js) - Google Analytics