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循环可以完成的任务

from functools import reduce
product = reduce( (lambda x, y: x * y), [1, 2, 3, 4] )

  • Decoractors装饰器
    • 函数的基础知识:在使用函数的时候,如果不加括号,函数不会运行,如果想返回一个函数或者传递函数给一个变量,不要加括号就可以了
    • 装饰器在做的事情,就是装点的意思,如下面的例子,把一个函数包起来,再返回这个函数,在使用的时候可以用语法糖@进行调用.这下面的这个例子中,在定义bar的时候,在上面可以写上@use_logging
    • 装饰器一般可以用在授权,检查是否可以去访问一个站点,第二个就是下面的例子,日志.我在上班还看到可以使用装饰器来决定这串代码是否使用spark来跑,下次把那一串内容整理过来.

Image

  • slot : 带有__slot__的类并没有__dict__而没有__slot__却含有__dict____slots__正是通过避免定义动态的数据结构__dict__来实现对memory的节省.
  • Virtualenv
    • 能够帮我们创建⼀个独⽴(隔离)的Python环境。
    • virtualenv myproject: 在这个文件下创建一个隔离的virtualenv
    • source bin/active:激活这个隔离的环境
    • deactive:退出这个virtualenv
    • virtualenv –system-site-packages mycoolproject: 希望让这个额virtualenv使用系统全局模块
    • tips:可以使用smartcd)
  • Collections:
    • defaultdict: 与dict类型不同的是你不需要检查key是否存在
    • Counter:可以统计词频
    • deque:deque提供了⼀个双端队列,你可以从头/尾两端添加或删除元素. pop 和 popleft, appendleft, append. 只要是list里面有的方法都可以用.
    • namedtupe:⼀个元组是⼀个不可变的列表,你可以存储⼀个数据的序列, namedtuple它把元组变成⼀个针对简单任务的容器。
  • Zip and unzip:

Image

Image

  •  对象自省(introspection):来判断⼀个对象的类型的能⼒。
    • dir: dir(list), 列出了⼀个对象所拥有的属性和⽅法
    • type
    • inspect
  • Comprehension 推导式
    • 推导式: 提供了一种种简明扼要的⽅法来创建列表,它的结构是在⼀个中括号⾥包含⼀个表达式,然后是⼀个for语句,然后是0个或多个for.

Image

todo: 添加debug部分的总结,装饰器的部分,data manipulation (chain).




    Enjoy Reading This Article?

    Here are some more articles you might like to read next:

  • What is Mathematics: Solution Chapter 3
  • What is Mathematics: Solution Chapter 2
  • What is Mathematics: Solution Chapter 1
  • A small guide to supplements: What you need to know
  • 混乱与秩序