最近在接手一个项目,打开前本以为会是文件夹包文件夹,代码包代码。但是实际上就只有一个py文件和几个源文件,看的我头都大了。所有功能全挤在一起,注释也很难让人理解代码的含义,这样就在不经意间暴露了一个人的代码水平。都说刚开始程序员写if __name__ == '__main__',后来写 def,再后来写class,最后写文件。那如何快速提高自己的代码水平,让人觉得你的代码合格呢?下面我(changshi)带大家一步一步学会,把一个程序封装成一个系统。

以下程序均以python举例。

OK那么我们先从一个基本问题入手,诸如一个简单的加减法实现。现在要求用户输入一个表达式,我的程序可以正确的返回给他答案,用python可能就eval()就解决了(但是一些复杂的算术式还是无法实现,还是得靠try一类的来捕获错误再具体分析一类的)。于是一个解决程序就出现了:

print(eval(input().strip('=')))

高效编写代码,减少开发时间是python的特点,这个程序甚至不需要头文件一类的,就已经可以处理诸如1+1=?一类的简单加减法问题了。但是假如你取了个名,文件名字就叫operation.py,然后写了篇论文就叫《基于python3.7的单线程运算平台》,然后哗啦哗啦注进去一堆水。多少有些江郎才尽。

那这有人说了,我把他们拆开,能几行完成绝对不用一行。要我说,确实是好方法。

于是第一步下来,你的代码量增加了,看起来也专业了不少,成了下面的样子。

Formula = input()
Pure_Formula = Formula.strip('=')
Operation = eval(Pure_Formula)
print(Operation)

写到这里也是诸多初学者的极限了,也许你确实有完全实现这个功能的想法,但是程序员的一句金句:不要重复造轮子。如果你再分开+-*/来一个个分析那就太愚蠢了(当然在学习阶段还是要一步一步来,培养代码能力更重要,这里说的是你在开发阶段)。

但是不管你的代码名字有多详细,有多优美,随着代码量的增加,都会使其变得臃肿不堪。函数的使用可以在一定程度上帮助你分工。

于是你开始往里面添加函数,让他看起来更加分明一点。(在实际编写代码的过程中,不一定需要通过函数来使代码简洁易读,也可以单纯通过空两行或是多行注释来使代码具有可维护性)

def operation(formula: str) -> int or float:
    return eval(formula)


if __name__ == '__main__':
    Formula = input()
    Pure_Formula = Formula.strip('=')
    print(operation(Pure_Formula))

恭喜!现在已经进行到了完美的一步,代码量增加了,看起来也高级了不少,而这也是不少使用python的止步之处,似乎再多下去就毫无意义了。但其实不是的,光拿钱和说话比硬气的时候都用得到的啊哈哈哈。

不过言归正传,现在已经初具规模了,但是显而易见,目前仍然摆脱不了只有一个python文件的淡薄,拿出去还是给人笑话。我把它分成三大步,这是第一步,下一步就是类的运用了。