问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

发布网友 发布时间:2022-05-02 11:29

我来回答

1个回答

热心网友 时间:2022-04-18 21:43

在接手别人代码的时候。我们常常抱怨前任代码写的太差。导致维护行非常长.最后发现花在维护上的时间多得足够自己重新写一个。有些人于是抱着奋起一击鱼死网破的态度,推倒重写.结果是浪费了一大票时间。而且写完之后发现。自己写的代码可维护性往往不见的比前任好多少.但编写文档有缺点:1,文档和代码不同步.当代码做出变更时,文档却没有做出类似的变更。2,开发时文档的重要性偏低。往往为了赶时间而放弃写文档所以我们需要从python中找到一些办法,能够提供高质量的文档。同时又不至于带来过大的负担我找到的第一个办法是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文档!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
美国的联邦储备体系采用的中央银行制度是 什么是联储 打四合扣表面不能起印 四合扣四合扣安装工具 中国旅行社协会协会的主要任务 办公室的女同志都在议论ihush俏物悄语,ihush俏物悄语是什么啊? 老听有人说Ihush 俏物悄语,这个网站是干嘛的啊? ihush项链什么牌子-ihush项链掉色怎么办 姓李的要起名.用“米"或“豆字加偏旁有那些字 美国联邦储备委员会美国联邦储备委员会简介 自学了Python,请问高手们要怎么提高 如何提高python? 请提示几个好听的姓金男孩的名字 如何提高python的计算精度? 姓金的男孩, 属马的 农历9月15日 早上8点半生 ,五行缺火, 急求三个字 名字 道字辈的 提升Python编程能力有什么方法 如何提高Python运行效率 超实用的四种提速 帮忙取名,男孩 ,姓金 ,3个字,五行不缺,谢谢了 在2011年1月份生个男孩,姓金,打算取三个字的名字,跪求好名。谢谢 Python学习如何提高自己呢?谁知道? python如何提高 怎样更好地提高自身的 Python 水平 姓金的男孩名字三个字的,第三个字要有金或水 帮忙起几个姓金的男孩帅酷的名字,三个字的,最好中间的字是浩 鸿 少 子 其他的有好听的也可以 求电影名 看过一个电影片段(好像是意大利的),白色的鸟从一个人的伤口里飞出来 天上鸟儿成群飞走,男子突然感觉不对劲拔腿就跑。是哪个电影? 关于鸟的动漫电影,这部叫什么 林正英演的那个骑鸵鸟走的那个电影叫什么名字? 求一部人与鸟的电影的名字 有什么关于动物的电影? 如何快速提升python技术水平 经典三圾片有哪些 老3级鬼片 日本jingdian三圾片哪个好看 香港三圾片名字有哪些 求坏男人第3级37分钟左右处电影院看的电影 在腾讯视频可以搜到的三圾电影片 谁有什么好看的电影,别藏了,百度云给我,不要3级 一部电影,是一个分了1 2 3级的,要看第3级,第3级好像是3D的讲的是一个少年和残疾爷爷去了真人游戏找姐姐 男生看3级片很正常吗?adu 什么是国六汽车? 苹果退款以后还能充值吗 app退款后还能再充值吗 王者苹果系统申请退款后还能再充值么 苹果退款期间能充值吗 苹果退款后多久能充值 苹果手机游戏充值退款后还能冲么 苹果充值退款后充值其它游戏被限制了怎么办 ios退款后能不能充值 苹果退款后还能充值吗