12 - 模块与函数

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函数。当需要一次性生成所有数据的时候,使用序列
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值