首先先给出我能想到的一些办法。
1. 能换行绝对不写在一行。但凡涉及到数学表达式,或者长点的列表解析式,能换行就换行。
2. 绝对不用lambda表达式,统统写成def+return的显式表达式。
3. 能不写循环就不写循环,统统手动展开。
4. 尽量将所有功能分开,能封装到类里的封装到类里,不能的想尽办法写成函数。所有类的继承,除非必要,否则统统完整复制一遍父类代码,写到子类里。
5. 把python当成c艹来写,舍弃所有语法糖或者magic trick。最好连排序都手动写。
6. 尽量多用框架,然后把框架的源码放进你的项目。直接从你的项目里调用框架。
7. 当你已经完成自己的项目,测试也已经ok,自认为也没有啥bug了。但是还缺很多行咋办。随便打开一个python库,推荐scikit-learn,打开源码,找到其中的基类,或者函数,复制黏贴进你的项目里。在不被显式调用时,不影响你的运行结果。不过也要注意里面在tree这块有大量cython代码,别复制那一块。
以上办法完全牺牲了python的优势,简洁和优雅,只为了换取达到硬指标。
多说一句,如果一个课堂大作业要写5000行有效python代码,那这个项目要么绝对精彩,绝对可以在GitHub上翻点风浪起来了。要么就是完全在瞎胡搞,根本不懂python。
毕竟python本来就是一个快速开发用来验证想法的脚本语言。除非是大的开源项目,或者服务器级别的开发任务,一般不太会超过万行。而且python本身因为效率问题一直为人诟病,很多项目其实源码里大量使用c或者fortran,或者cython来进行优化提速。纯python是比较少的,如果不调用任何外部库的话。而本来python就是因为外部库多减少造轮子的时间,快速开发为优势的语言,现在被逼到如此凑行数实在可悲。听说过c艹和java作业规定不少于xxx代码行数的,python我只听说过规定不超过xx行的。
看完题目特别想喷一下布置作业的老师,一看是交大的老师,算了,人家一定是有自己的道理的,吧。唉!