博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 知识点小结
阅读量:6772 次
发布时间:2019-06-26

本文共 971 字,大约阅读时间需要 3 分钟。

hot3.png

1. python的内存管理

  • python的内存管理是引用了内存池的管理,采用pymalloc的机制用于对小块内存的申请与管理。
  • 内存池的概念是预先在内存中申请一定数量的,大小相等(巨细相等)的内存块供留作备用,当有新的内存申请时,先从内存池分配需求所需内存,当内存池不能满足时,在申请新内存,这样减少了内存碎片,增加了使用效率。
  • pymalloc的内存处理机制:分被对应两种,对于小块内存申请(小于256bits时),会在内存池中请求内存空间;当大于256bits,则会直接履行new/malloc的行为来请求内存空间。 关于释放内存方面,当一个目标的引用计数变为0时,python就会调用它的析构函数。在析构时,也采用了内存池机制,从内存池来的内存会被归还到内存池中,以防止频频地释放动作。

2. python下多线程的限制以及多进程中传递参数的方式

  • 存在python解释器的GIL全局锁,同一时间只能一个线程执行,是一种并发
  • 多进程间同享数据,能够运用 multiprocessing.Value 和 multiprocessing.Array

3. 什么是lambda函数?它有什么好处?

  • lambda是一个无名函数。add = lambda x, y : x+y add(5,3) #可以这样使用
  • sorted(list1, key=lambda x: abs(x))
  • Python中最常见的filter筛选、map小刷子、reduce合并,都可以用lambda
  • list(map(lambda x:x*x,range(1,21)))
  • list(filter(lambda x:x%2 == 0,range(1,21)))
  • reduce(lambda x,y:x+y,range(1,101),10000)

4. 解释一下python的and-or语法

  • 类似于C中的三目运算符,bool?a:b. == bool and a or b
  • 当a为假时,不能正确输出。所以改为 bool and [a] or [b]
  • 由于 [a] 是一个非空列表,它永久不会为假。甚至 a 是 0 或 '' 或其它假值,列表[a]为真,由于它有一个元素。

转载于:https://my.oschina.net/u/3127014/blog/2982550

你可能感兴趣的文章