如何评论一个开发代码写的好?清晰简洁明了?No,No,一个处女座就可以写出来了,整齐地代码,详细的注释不是代码好的标准,应该说不是最重要的标准。代码写的是否健壮才是检验的重要标准。

代码的健壮性:

当我们测试向开发提出一个bug,问怎么会出现这样一个bug,他们可能会说代码写的不健壮。何为健壮性,健康强壮,抵挡得住测试各种异常场景的测试才为健壮。而真正的大牛追求的就是以较少的代码量来完成逻辑开发,还能保持代码的健壮性。而这样的代码很少见,一般的程序员见到还不一定能看懂。

Python函数的健壮性

函数的定义:

1.无参函数      def func_name():

pass

2.有参函数     def func_name(a,b):

print (a,b)

3.默认参可选函数  def func_name(a, b=1):

print(a,b)

4.不定可变参函数  def func_name(*kw):

for i in kw:

print i

5.关键字参数   def func_name(a, b, **kw):

print(a,b,kw)

Python中的参数不像其它语言,我们可以指定传入参数的类型,个数,那么如何保证函数的健壮性呢?

1.知道要传入的参数是什么,类型,个数....(异常处理,逻辑判断)

2.知道函数要返回的是什么,用assert做断言判断。

例如一个加法函数:

def add(a, b):
if isinstance(a, int) and isinstance(b, int):
return a+b
else:
return '参数类型错误' print(add(4, 5))
print(add(4, 'a'))
assert add(4, 5) == 6

我们对参数类型做异常判断,对函数结果进行断言验证来保证函数的健壮性,当然在开发中不是仅仅判断函数类型这么简单,只是从中学习到要对写的每个函数进行分析,对各种异常进行处理,这样写出的程序才会健壮,这也是开发自测的一个过程。

人生苦短之Python函数的健壮性的更多相关文章

  1. 使用 const 提高函数的健壮性

    使用 const  提高函数的健壮性 看到 const 关键字,C++程序员首先想到的可能是 const 常量.这可不是良好的条件 反射.如果只知道用 const 定义常量,那么相当于把火药仅用于制作 ...

  2. 使用const 提高函数的健壮性

    1.如果输入参数采用“指针传递”,那么加const 修饰可以防止意外地改动该指针指向的内存单元,起到保护的作用. 例如:void StringCopy(char *strDest, const cha ...

  3. 安装第三方Python模块,增加InfoPi的健壮性

    这3个第三方Python模块是可选的,不安装的话InfoPi也可以运行. 但是如果安装了,会增加InfoPi的健壮性. 目录 1.cchardet    自动检测文本编码 2.lxml    用于解析 ...

  4. python函数,模块及eclipse使用

    一.eclipse的使用 1.作用 (1)最好用的IDE (2)可调式debug (3)查看可执行过程 (4)可查看源代码 2.安装eclipse及配置 目录安装Pythonpython for ec ...

  5. python函数,模块及eclipse配置python开发环境

    一.eclipse的使用 1.作用 (1)最好用的IDE (2)可调式debug (3)查看可执行过程 (4)可查看源代码 2.安装eclipse及配置 目录安装Pythonpython for ec ...

  6. python函数-函数初识

    python函数-函数初识 1.函数的定义 语法 def 函数名(参数1,参数2,参数3,...): '''注释''' 函数体 return 返回的值 2.函数的使用原则---先定义后调用 #定义阶段 ...

  7. Python函数讲解

    Python函数

  8. strcpy之代码的健壮性与可维护性

    strcpy   函数的原型是: char * strcpy(char * strDest,const char * strSrc);    功能:把从strSrc地址开始且含有NULL结束符的字符串 ...

  9. Python函数中参数类型

    在学习Python函数的时候,函数本身的定义和调用并不是很复杂,但是函数的参数类型和用法的确有些复杂.在此做一个小结,加深理解. Python参数的定义 负责给函数提供一些必要的数据或信息,以保证函数 ...

随机推荐

  1. 洛谷——P1588 丢失的牛

    P1588 丢失的牛 题目描述 FJ丢失了他的一头牛,他决定追回他的牛.已知FJ和牛在一条直线上,初始位置分别为x和y,假定牛在原地不动.FJ的行走方式很特别:他每一次可以前进一步.后退一步或者直接走 ...

  2. 补充==的使用和equals的区别

    字节码的比较     Class 相等与否使用“==” 进行比较,形如 if (adapter == IContentOutlinePage.class)  进行比较,因为字节码在JVM中只有一份,地 ...

  3. Leetcode总结之Tree

    package Tree; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; imp ...

  4. Android在其他线程中更新UI

    public class TransferTools { private static final int MSG_START = 1001; private static final int MSG ...

  5. 【spring boot】5.spring boot 创建web项目并使用jsp作前台页面

    贼烦的是,使用spring boot 创建web项目,然后我再idea下创建的,but 仅仅启动spring boot的启动类,就算整个项目都是好着的,就算是能够进入controller中,也不能成功 ...

  6. tensorflow global_variables_initializer()

    老版本为 init = tf.initialize_all_variables() 新版本为 init = tf.global_variables_initializer()

  7. mac apache配置虚拟主机

    设置虚拟主机 在终端运行“sudo vi /etc/apache2/httpd.conf”,打开Apche的配置文件 在httpd.conf中找到“#Include /private/etc/apac ...

  8. thrift的使用及遇到的问题

    centos 系统安装官方文档:http://thrift.apache.org/docs/install/centos 一.按该文档安装出现了一系列的问题,记录如下: 1.安装thrift时./bo ...

  9. POJ 2249-Binomial Showdown(排列组合计数)

    Binomial Showdown Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 18457   Accepted: 563 ...

  10. MySQL插入数据性能调优

    插入数据性能调优总结: 1.SQL插入语句调优 2.如果是InnoDB引擎的话,尝试开启事务,批量提交 3.调整MySQl数据库配置     参考: 百度空间 - MySQL插入数据性能调优 CSDN ...