python学习-零碎

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
第二个参数是:米老鼠

在函数内定义全局变量

  1. 在函数内直接修改全局变量,只在该函数内有效,不会影响函数外全局部变量的值,示例如下:
count = 10
def Function():
     count = 5
     print('函数内count:',conut)
Function()
print count

结果为

函数内count:5
10
  1. 在函数内对全局变量进行修改,并影响外部的全局变量,需要在变量前加上关键字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

你可能感兴趣的:(python学习-零碎)