Python代码缩进和测试模块示例详解
前言
Python代码缩进和测试模块是大家学习python必不可少的一部分,本文主要介绍了关于Python代码缩进和测试模块的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。
一、Python代码缩进
Python函数没有明显的begin和end,没有标明函数的开始和结束的花括号。唯一的分隔符是一个冒号(:),接着代码本身是缩进的。
例如:缩进buildConnectionString函数
defbuildConnectionString(params): """Buildaconnectionstringfromadictionaryofparameters. Returnsstring.""" return";".join(["%s=%s"%(k,v)fork,vinparams.items()])
代码块是通过它们的缩进来定义的。我所说的“代码块”是指:函数、if语句、for循环、while循环,等等。开始缩进表示块的开始,取消缩进表示块的结束。不存在明显的括号,大括号或关键字。这就意味着空白是重要的,并且要一致。在这个例子中,函数代码(包括docstring)缩进了4个空格。不一定非要是4个,只要一致就可以了。没有缩进的第一行则被视为在函数体之外。
例如:“if语句”展示了一个if语句缩进的例子。
deffib(n):(1) print'n=',n(2) ifn>1:(3) returnn*fib(n-1) else:(4) print'endoftheline' return1
(1)这是一个名为fib的函数,有一个参数n。在函数内的所有代码都是缩进的。
(2)在Python中向屏幕输出内容非常容易,只要使用print即可。print语句可以接受任何数据类型,包括字符串、整数和其它类型,如字典和列表。甚至可以混在一起输出,只需用逗号隔开。所有值都输出到同一行,用空格隔开(逗号并不打印出来)。所以当用5来调用fib时,将输出“n=5”。
(3)if语句是一种的代码块。如果if表达式计算为true,紧跟着的缩进块会被执行,否则进入else块执行。
(4)当然if和else块可以包含许多行,只要它们都同样缩进。这个else块中有两行代码。对于多行代码块没有其它特殊的语法,只要缩进就行了。在经过一些最初的抗议和几个与Fortran的嘲讽的类比之后,您会心平气和地
对待代码缩进,并且开始看到它的好处。一个主要的好处就是所有的Python程序看上去都差不多,因为缩进是一种语言的要求而不是一种风格。这样就使得阅读和理解他人的Python代码容易得多。
Note:Pythonvs.Java:语句和语句分割
Python使用硬回车来分割语句,冒号和缩进来分割代码块。C++和Java使用分号来分割语句,花括号来分割代码块。
二、Python测试模块
所有的Python模块都是对象,并且有几个有用的属性。您可以使用这些属性方便地测试您所编写的模块。下面是一个使用ifname的技巧。
ifname=="__main__":
在继续学习新东西之前,有几个重要的观察结果。首先,if表达式无需使用圆括号括起来。其次,if语句以冒号结束,紧跟其后的是缩进代码。
Note:Pythonvs.C:比较和赋值
与C一样,Python使用==做比较,使用=做赋值。与C不一样,Python不支持行内赋值,所以不会出现想要进行比较却意外地出现赋值的情况。
那么为什么说这个特殊的if语句是一个技巧呢?模块是对象,并且所有的模块都有一个内置属性name。一个模块的name的值取决于您如何应用模块。如果import模块,那么name的值通常为模块的文件名,不带路径或者文件扩展名。但是您也可以像一个标准的程序一样直接运行模块,在这种情况下name的值将是一个特别的缺省值,main。
>>>importodbchelper >>>odbchelper.__name__ 'odbchelper'
只要了解到这一点,您就可以在模块内部为您的模块设计一个测试套件,在其中加入这个if语句。当您直接运行模块,name的值是main,所以测试套件执行。当您导入模块,name的值就是别的东西了,所以测试套件被忽略。这样使得在将新的模块集成到一个大程序之前开发和调试容易多了。
Tip:MacOS上的ifname__
在MacPython上,需要一个额外的步聚来使得ifname技巧有效。点击窗口右上角的黑色三角,弹出模块的属性菜单,确认Runasmain被选中。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对毛票票的支持。