动态一时爽,重构火葬场?

江湖有言:”动态一时爽,重构火葬场“,更有人戏言:”动态一时爽,一直动态一直爽????“

  • 动态语言大部分错误只有在程序运行的时候才能发现,编译过程中只能发现简单的语法错误
  • 这些问题在大型项目上显得更为突出,所以遵循代码规范,Code Review就显得尤为重要了

为了重构时,少掉些头发,在开发的时候就得注意了

1、语法层面规范代码:PEP484 提供了类型提示(Type Hint),在定义函数时,可以指定返回值类型,参数类型
  • 定义一个函数接受任何类型:
def my_sum(num):
   return 1 + num

my_sum(1)
my_sum('name')

程序运行前,不会有任何提示,尽管我们知道int和str不能相加

在Python 3.5中,用Type Hint 写法如下

def my_sum(num: int) ->int:
    return 1+num

上面就是静态的写法,多了:int-> str,前者用来说明参数的类型,后者指函数的返回值类型,在写代码时,IDE也会有提醒
动态一时爽,重构火葬场?

动态一时爽,重构火葬场?

2、另一个就是编写测试了,如果重构前和从重构后,测试都可以完美运行,那基本就ok了
单元测试用到的框架是自带的unittest
  • 1、这个框架用起来还是很简单的,测试语句一般都是比较简单,因为太复杂,本身可能就有bug

  • 2、框架提供两个方法,分别在开始测试前执行和在测试后执行:setUptearDown

  • 3、基本使用断言方法的返回值。

  • 4、常用方法就贴个图吧。高级用法 后续再补吧
    动态一时爽,重构火葬场?