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

论坛 期权论坛 脚本     
已经匿名di用户   2022-4-26 16:01   2399   0

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 等等.善于利用能制作出非常

漂亮的文档

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2010-04-08 13:27

浏览 2035

评论

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:81
帖子:4969
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP