文章目录

  • 前言
  • 一、函数的基本概念
  • 二、文件
  • OS模块
  • json模块
  • 高级特性
  • 生成式
  • 生成器
  • 闭包
  • 装饰器


前言

一、函数的基本概念

**全局变量:**在函数外边定义的变量,全局生效
**局部变量:**在函数里边定义的变量,局部生效
如果要在函数中修改全局变量,不能直接修改;需要用global关键字声明修改的变量是全局变量;主要是不可变数据类型,对于可变数据类型,不需要声明

python 函数的保存和加载_python 函数的保存和加载

形参实参 常见的四种形参: 必选参数,默认参数,可变参数,关键字参数

python 函数的保存和加载_python_02


关键字参数:


可以传递key,value


def enroll(name,age=18,**kwargs):\

匿名函数:
lambda
递归函数:
函数在内部调用自己本身

二、文件

mode:
r:只能读文件
w:只能写入(而且会清空之前的文件内容)
a+:读写(文件追加写入内容)
with语句:
一般情况下我们打开文件进行读写操作之后都需要关闭文件,防止占用资源,但是这样会很麻烦,所以我们引入with语句,这样在执行玩with语句中的内容之后,会自动关闭文件释放空间
with open(‘doc/test.txt’,‘w+’)as f:
f.wirte(‘hello world\n’)
f.seek(0,0) 移动指针到文件最开始
f.seek(0,2) 移动指针到文件末尾
print(f.read()) 读取文件内容

OS模块

获取主机名以及主机信息

python 函数的保存和加载_生成器_03

try:可能会出现报错的代码
except:如果出现异常,执行的内容
finally:是否有异常都会执行的内容
获取环境变量:
envs = os.environ
print(envs)
目录名和文件名的拼接:
os.path.dirname 获取某个文件对应的目录名
file 当前文件
join 拼接,将目录名和文件名拼接起来

python 函数的保存和加载_python 函数的保存和加载_04

json模块

json是一种轻量级的数据交换格式

将python对象编码成json字符串

python 函数的保存和加载_生成式_05


将json字符串解码成python对象

python 函数的保存和加载_python 函数的保存和加载_06


将字典形式的数据转换为excel形式

python 函数的保存和加载_生成式_07


小练习

python 函数的保存和加载_生成器_08


python 函数的保存和加载_linux_09

高级特性

生成式

可以用列表生成式来优化我们的代码

python 函数的保存和加载_python 函数的保存和加载_10


但是列表生成式的使用也要根据具体情况而定

python 函数的保存和加载_生成器_11

集合生成式、字典生成式

python 函数的保存和加载_linux_12

生成器

一边循环一边计算的机制

1、如何创建生成器:列表生成式的改写:将[]改为()
2、yield关键字

python 函数的保存和加载_生成器_13


生成器的特点:减少内存占用,不会堆积在内存中,一边循环一边计算。在yield处中断,不会过于占cpu

闭包

闭包:
1、函数里边嵌套函数
2、外部函数的返回值是内部函数的引用
3、内部函数可以使用外部函数的变量

python 函数的保存和加载_python_14

装饰器

装饰器就是用来装饰函数的工具
功能:在不改变源代码的情况下,添加额外功能
如何实现装饰器:基于闭包

python 函数的保存和加载_python 函数的保存和加载_15


含参的装饰器


python 函数的保存和加载_linux_16

存在多个装饰器的时候,执行装饰的内容是从上到下,被装饰的顺序是从下到上