1.Python 程序的结构
Python程序由package、module和function组成。
package是由一系列模块组成的集合,module是处理某一类问题的集合。、
package必须至少含有一个 init.py 文件,该文件内容可以为空,用于标识当前文件夹是一个包。
2.module
- Python程序由一个个的模块组成的,一个python文件就是一个模块。
- 当python导入一个module时,首先查找当前路径,然后查找lib目录、site-packages目录和环境变量PYTHONPATH设置的目录。
- 模块的导入:
import module_name
from module_name import fuction_name
from module_name import *
- module的内置属性
_name__
用于判断当前模块是否是程序的入口,如果当前程序正在被使用,那么其值为__main__
,通常给每个模块都加上一个条件语句,用于单独测试该模块的功能
if __name__ == `__main__`:
print("module作为主程序运行")
else:
print("module供其他程序所调用")
__doc__
文档字符串,存储文档相关描述信息。可以用三引号来定义。
3.自定义包package
package 的作用与Java中的作用是相同的,都是为了实现程序的重用。
每个package中都必须含有一个 __init__.py
在模块被 import的时候被调用
如:
__all__ =["module1","module2"] #记录当前package所包含的模块列表,添加了这一行之后就可以用 from module import * 方式导入全部模块了
if __name__ == "__main__":
print("作为主函数运行")
else:
print("供其他程序调用")
4.lambda函数
lambda函数用于创建一个匿名函数。使用lambda函数可以返回一些简单的运算结果。其格式如下:
lambda var1, var2, ... : expression
其中变量用于表达式的计算。通常把lambda赋值给一个变量,变量就可以作为函数使用。例如:
func = lambda var1, var2, ... : expression
func() #调用
这样就把lambda和变量func绑定在一起了,变量func的名字就是函数名。
注意:lambda中只能使用表达式,不能使用判断、循环等多重语句。
5. Generator函数
- 生成器(Generator)的作用是一次产生一个数据项,并把数据输出。Generator函数可以用在for循环中。
- Generator函数的定义与普通函数没有区别,只要在函数体内使用 yield 生成数据项即可。
- Generator函数可以被for循环遍历,而且可以通过next()方法获得yield生成的数据项。
示例代码如下:
def func(n): #Generator函数定义
for i in range(n):
yield i
for i in func(5): #for 循环遍历
print(i)
gen = funct(5)
print(gen.next()) #next()获取下一个元素
print(gen.next())
print(gen.next())
Generator与序列的区别:
- Genarator一次只返回一个数据项,占用更少的内存。元素通过next()访问。每次生成数据都要记录当前的状态,便于下一次生成数据。
- 序列一次返回所有数据,元素通过索引访问
- 当程需要较高的性能或者一次只需要一个值进行处理地时候。使用Generator函数。当需要一次性生成所有数据的时候,使用序列