如何把一个程序封装成一个系统?(2)

好!我们题接上文,现在你看着这个到达两位数的代码量不知所措,def也用了,好听的变量名也用了,还是太短了。这个时候就可以开始用类来使程序更加完整了。

类,对象,描述一个物体。在系统的构建中算是重要的一部分。而把一种解决问题的方法换成具象成对对象的描述,是规模化程序的一个重要思想。

于是你马不停蹄的跑去菜鸟教程,把类的基本知识爆看一顿,瞬间觉得自己突飞猛进。再修改代码。于是成了下面这样。

class operation:

    def __init__(self, formula: str, mode: int = 1):
        """
        To see what we can do
        :param formula: make an easy operation
        :param mode: choose mode to count
        """
        print('Here is your answer')
        self.formual = formula
        self.mode = mode
        if self.mode == 1:
            print(self.easy_count())
        if self.mode == 2:
            print(self.complex_count())

    def easy_count(self):
        pure_formula = self.formual.strip('=')
        return eval(pure_formula)

    def complex_count(self):
        return 'Sorry, this function still in development'


if __name__ == '__main__':
    operation(input('This class is for easy formula test, write down here...'), int(input('choose your mode here...')))

喔哈哈哈。看起来已经多了不少,现在把它看成一个物体后是不是变得充实了不少,甚至可以不止步于此,再往里面添加完整的需求诸如报错的方法,如果在easy_count中出错自动转换到complex_count方法等等等等。让它更像一个系统,重要的就是可以让他面对更多的情况,拥有更完善的功能。

注释也是很重要的一部分,在以后对接工程或是完善工程时是不可或缺的一部分。不要吝啬你的注释,这也是系统的一部分。

随着你在这个类里不断添加代码,它会逐渐变的臃肿起来,一个类里头放了几百行代码,全是方法。而且尾部的if __name__ == '__main__'实在是有点丑,这时把他安置起来就显得格外重要,这时你就要开始面向多文件了。

你新开辟了一个py文件,叫做main,意思是这个文件是整个系统的入口,让它作为系统的main于是你的目录变成了这样。

 你把它分成两个文件,把这个小尾巴扔进去,于是你的类在一个文件,入口也在一个文件。似乎具体了不少,更加简洁明了了。

在main里面:

from t_mose import operation

operation(input('This class is for easy formula test, write down here...'), int(input('choose your mode here...')))

在类里面还是不变,就是类。但是看这两个文件,还是太简单了,对别人来说根本不算是一个,甚至有些多余并且没必要。这个时候你需要的是更详细的文件分层管理。

这时在你桌面上新建一个文件夹,把原来这两个文件放进去,正式一点。

加上config,方便以后修改参数

加上readme,方便以后写框架文档

加个unitest模块,随着代码变多,它可以帮你快速测试代码

于是乎。。。

在config里

from caculate.t_mose import operation

DEFAULT_MODE = 1
DEFAULT_TYPE = 'EASY'

 在operation里

from caculate.config import *


class operation:

    def __init__(self, formula: str, mode: int = DEFAULT_MODE):
        """
        To see what we can do
        :param formula: make an easy operation
        :param mode: choose mode to count
        """
        print('Here is your answer')
        self.formual = formula
        self.mode = mode
        if self.mode == 1:
            print(self.easy_count())
        if self.mode == 2:
            print(self.complex_count())

    def easy_count(self):
        pure_formula = self.formual.strip('=')
        return eval(pure_formula)

    def complex_count(self):
        return 'Sorry, this function still in development'

而这依然只是冰山一角,现在是初步构造了一个你自己的小小系统,以后如果有文件导入,多线程一类一类的,你依旧可以往里面添加东西,让它变得更加完善。

那么在学会高度自定义一个属于自己的系统后,下一步就是去嵌套别人的系统,从读懂别人的系统,到修改别人系统的代码,再到添加新的模块。我会在下一章节讲解高度自定义他人或是官方库的基础系统模板,减少造轮子的过程。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值