12 - 模块与函数

来源:互联网 发布:sqlserver取消自增列 编辑:程序博客网 时间:2024/06/06 18:48

1.Python 程序的结构

Python程序由package、module和function组成。
package是由一系列模块组成的集合,module是处理某一类问题的集合。、
package必须至少含有一个 init.py 文件,该文件内容可以为空,用于标识当前文件夹是一个包。

2.module

  • Python程序由一个个的模块组成的,一个python文件就是一个模块。
  • 当python导入一个module时,首先查找当前路径,然后查找lib目录、site-packages目录和环境变量PYTHONPATH设置的目录。
  • 模块的导入:
import module_namefrom module_name import fuction_namefrom 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, ... : expressionfunc()    #调用

这样就把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 ifor i in func(5):    #for 循环遍历    print(i)gen = funct(5)print(gen.next())    #next()获取下一个元素print(gen.next())print(gen.next())

Generator与序列的区别:

  • Genarator一次只返回一个数据项,占用更少的内存。元素通过next()访问。每次生成数据都要记录当前的状态,便于下一次生成数据。
  • 序列一次返回所有数据,元素通过索引访问
  • 当程需要较高的性能或者一次只需要一个值进行处理地时候。使用Generator函数。当需要一次性生成所有数据的时候,使用序列
0 0
原创粉丝点击