pickle / 函数文档 / 收集参数 / 在函数内定义全局变量 / 闭包 / lambda表达式 / filter / map/eval
pickle
import pickle
##### 保存
a_list = [1,2,3]
file = open('pickle_example.pickle','wb')
pickle.dump(a_list,file)
file.close()
##### 提取
with open('pickle_example.pickle','rb') as file:
a_list1 = pickle.load(file)
函数文档
文档的定义
def Function():
'我是函数文档部分'
pass
文档的显示
Function._doc_
收集参数(可变参数)
当作者也不知道自己定义了多少参数时,在形参前加*
,获取所有参数,具体定义如下
def Function(*params): #如果需要传入其他形参,可以用关键字参数定义赋值
print('参数的长度是:',len(params))
print('第二个参数是:',params[1])
test('可达鸭','米老鼠','唐老鸭','皮卡丘','亚古兽') #打包成员组
输出为
参数的长度是:5
第二个参数是:米老鼠
在函数内定义全局变量
- 在函数内直接修改全局变量,只在该函数内有效,不会影响函数外全局部变量的值,示例如下:
count = 10
def Function():
count = 5
print('函数内count:',conut)
Function()
print count
结果为
函数内count:5
10
- 在函数内对全局变量进行修改,并影响外部的全局变量,需要在变量前加上关键字
global
,示例如下:
count = 10
def Function():
global count
count = 5
print('函数内count:',conut)
Function()
print count
结果为
函数内count:5
5
闭包
闭包是函数式编程的重要语法结构。在一些语言中,在函数中可以(嵌套)定义另一个函数时,如果内部的函数引用了外部的函数的变量,则可能产生闭包。闭包可以用来在一个函数与一组“私有”变量之间创建关联关系。在给定函数被多次调用的过程中,这些私有变量能够保持其持久性。
def Function1(x):
def Function2(y):
return x*y
return Function2
Function1(5)(8)
其中Function2是闭包
lambda表达式(匿名函数)
通常形式为 lambda 参数1,参数2 :返回值
示例如下:
#函数1
def ds(x,y):
return x+y
#函数2
ds = lambda x: x+y
#函数1和函数2等价,调用方式均如下
ds(2,3)
filter(过滤)
filter函数有两个参数,参数1为一个函数或None,参数2为一个列表。使用filter函数返回列表,过滤掉不满足参数1函数的值,示例如下:
k = filter(lambda x: x % 2,range(10))
print k
#结果为
[1,3,5,7,9]
map(映射)
map函数有两个参数,参数1为一个函数,参数2为一个列表。使用map函数返回列表,其中每个值为参数2列表中每个值经过参数1的函数运算得到的结果,示例如下:
k = map(lambda x: x * 2,range(10))
print k
#结果为
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
eval
eval() 函数用来执行一个字符串表达式,并返回表达式的值。可以理解为去掉字符串左右的两个引号。例如
print(eval( '3 * 7' )) # 21
print(eval('pow(2,2)')) # 4
print(type(eval("{'a':123,'b':456,'c':789}")) # dict