Python巩固整理

  • *args与**kwargs
    • *args是将不定数量的参数传递给一个函数,可以用for arg in argv进行打印
    • **kwargs则是传入不定长度的键值对,可以用for k,v in kwargs.items() 进行打印
    • 什么时候进行使用?一般会在写装饰器的时候使用
  • 调试
    • python -m pdb script.py
    • 或者在脚本里面进行使用,用pdb包,pdb.set_trace()来设置断点.
      • c: continue
      • w:显示当前正在执行的代码上下文信息
      • a:打印当前的参数列表
      • s:单步进入
      • n:单步跳过
  • 生成器
    • Iterable(可迭代对象): python中任意的对象,只要它定义了可以返回一个迭代器的__iter__方法,比方说用dir([]),就可以看到list又__iter__方法,说明它是一个可迭代的对象
    • Iterator(迭代器):只要定义了__next__方法,就是一个迭代器.可以用isinstance()来判断一个对象是不是Iterator.
    • Iteration(迭代):遍历就是一个迭代的过程,就是从某个容器取出元素的过程.
    • yield, 也是迭代器,yield 的作用就是把一个函数变成一个 generator,带有 yield 的函数不再是一个普通函数,Python 解释器会将其视为一个 generator,调用 fab(5) 不会执行 fab 函数,而是返回一个 iterable 对象!在 for 循环执行时,每次循环都会执行 fab 函数内部的代码,执行到 yield b 时,fab 函数就返回一个迭代值,下次迭代时,代码从 yield b 的下一条语句继续执行
  • Map, Filter, Reduce
    • Map会将⼀个函数映射到⼀个输⼊列表的所有元素上,list(map(lambda x: x**2, input_list))
    • Filter: less_than_zero = filter(lambda x: x < 0, number_list)
    • 聚合函数reduce,可以代替很多for循环可以完成的任务
Read More