2018-07-25Python(7)

python基础语法(7) 函数下

  1. lambda函数
    lambda函数有自己的作用域。
    代码示例:
    def makeAction(x):
    acts=[]
    for i in range(5):
    # i=0,1,2,3,4
    acts.append((lambda x,j=i:j**x))
    return acts
    fs=makeAction()
    print(fs0)
  2. map()
    代码示例:
    arr = [2,4,6,8,9] def func(x): return x*2+1 res01 = map(func,arr) print(list(res01))

    输出结果:
    [5,9,13,17,19]
    map()方法用来将list中的每一个元素都带到方法中执行,最后返回一个map地址,需要将其转化为list类型才能查看。
  3. reduce()
    代码示例:
    from functools import reduce arr = [2,4,6] res = reduce(lambda x,y:x + y,arr) print(res)

    输出结果:
    12
    reduce方法需要传入至少两个值,先将传入值的前两个进行函数运算,之后将运算结果与接下来的一个数进行运算,直到最后,得出一个结果。
    可以利用该方法进行累加运算。
  4. filter()
    代码示例:
    arr = ('张晓明','张山','王重阳','李娟') res = filter(lambda s:s[0] == '张' and len(s) == 2, arr) print(list(res))

    输出结果:
张山
filter()可以看成是条件搜索,只会搜索元祖中满足条件的值,并将其拷贝出来。
  1. sorted()
    代码示例:
    users=[ {'id':'008','user_name':'admin','user_password':'888','type':0}, {'id':'002','user_name':'joke','user_password':'777','type':1}, {'id':'001','user_name':'nose','user_password':'777','type':1} ] res=sorted(users,key=lambda user:user['id'],reverse=True) print(res)

    sorted()方法中有三个变量,第一个是要排序的list,第二个是要排序的key值,第三个,是正序还是倒序。
  2. 函数的闭包
    为了系统的安全,当函数调用结束后能够被立即回收。
    代码示例:
    a = 1 # 全局变量(任何人都可以访问它,易被修改;耗内存) def func_out(): a = 2 def func_in():#访问父函数的变量用nonlocal,若不存在父函数则会报错 nonlocal a a = a + 3 print(a) return func_in

模块
  1. 简介
    模块就是以.py结尾的Python文件。里面是python语句和python对象的定义。
    模块的作用是让代码变得更加条例清晰。
    把相关的代码归到一个模块中,剋让代码更易懂。
    模块中可以包含函数,类,变量。
  2. 两种带入模块的方式
    1. import + 模块相对地址
    2. form 模块相对地址 import 导入的方法名
  3. 导入模块是Python解析器的检索顺序
    1. 当前目录
    2. shell变量PYTHONPATH下的每个目录
    3. 查看默认路径(UNIX: /usr/local/lib/python/)模块搜索路径存储在 system 模块的 sys.path 变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。
  4. globals() 和 locals() 函数
    • globals()用来取到全局变量
    • locals()用来取到其父集函数中的变量
    两者返回的都是字典,所以能用kyes()函数摘取。
  5. reload()函数
    reload(module_name)用来重新导入一个模块,因为模块顶层的代码只会在导入模块的时候执行一次,如果想再次执行,可以用reload()函数重载该模块。
  6. 【2018-07-25Python(7)】init.py
    该文件用于模块的初始化,只在模块导入的时候执行一次。它的里面可以为空,主要用来标识当前文件夹是一个包。

    推荐阅读