1 lambda函数

函数格式是lambda keys:express   匿名函数lambda是一个表达式函数,接受keys参数,返回表达式的值。所以不用return,也没有函数名,经常用在需要key参数的函数中,比如sorted。

2 元组(),它是以逗号辨别的,而不是小括号。比如一个元素的元组新手经常写成(12),其实他会被解释成单个元素12.正确的写法应该是(12,),在元素后面加上逗号。

3 模块导入。比如

import random

print random.choice(range(10))

from random import choice

print choice(range(10))

新手会有一种误解,第二种方法只导入了一个函数,而没有把整个模块导入,这是错误的。整个模块其实已经被导入,只是那个函数的引用被保存了起来。所以from-import这种语法不会带来性能上的差异,也没有节省内存。

4 当你有许多module,比如几百个,想要使用时可能会想一个一个导入太麻烦,有没有简便的方法?答案是有的,就是将这些模块组织成一个package。其实就是将模块都放在一个目录里,然后再加一个__init__.py文件,python会将其看作为package,使用里面的函数就可以以dotted-attribute方式来访问。

5 参数传递可变对象是传引用的,不可变对象是传值的。那么什么对象是可变的,什么是不可变的。所有python对象都有三个属性:类型、标识符和值,如果值是可变的就是可变对象,如果值不可变就是不可变对象。像数字、字符串、元组都是不可变对象,剩下的列表、字典、类、类实例等都是可变对象。

6 迭代器的理解,是实现了迭代器协议的容器对象。自己实现一个迭代器,类中要有__iter__()方法,该方法返回一个对象。这个对象要有__next__()方法,在next方法中的适当位置返回StopIteration异常。迭代器不经常使用,所以不用太担心。有替代方法就是生成器。

class MyIterator(object):
"""docstring for MyIterator"""
def __init__(self, num):
self.num = num def __iter__(self):
return self; def __next__(self):
if self.num <= :
raise StopIteration; self.num -= ;
return self.num; for each in MyIterator():
print(each); -> 结果

7 生成器。函数中只要出现了yield语句就会将其转变成一个生成器。在遇见yield语句后会保存上下文环境,并退出函数。

注意:生成器中没有return语句。

def fun2(num):
print("start generator");
while(num>):
yield num;
num -=;

a=[each for each in fun2(5)]
print(a);

->结果
start generator
[, , , , ]

最新文章

  1. xampp 文件夹拷贝的注意事项。
  2. 图片延迟加载(lazyload)的实现原理
  3. 【转载】PostgreSQL分区表(Table Partitioning)应用
  4. ◆ 火狐浏览器去除JS方法:
  5. Linux软链接与硬链接
  6. PBOC2.0与PBOC3.0的区别
  7. 复杂事件处理引擎—Esper工作原理
  8. ios UIImageView处理图片大小问题
  9. PHP内写css样式
  10. 从零开始学习前端开发 — 10、HTML5新标签及表单控件属性和属性值
  11. 使用open-falcon监控Nginx
  12. Windows10 使用docker toolbox安装docker
  13. div加链接 html给div加超链接实现点击div跳转的方法[申明:来源于网络]
  14. WINDBG常用方法
  15. Windows和Mac浏览器启动本地程序
  16. React生命周期执行顺序详解
  17. 移动端与PC端的触屏事件
  18. Ubuntu下Tomcat绑定80端口(zz)
  19. 2018.11.01 洛谷P3953 逛公园(最短路+dp)
  20. 基于Redis位图实现用户签到功能

热门文章

  1. 搭建一个SpringBoot项目
  2. 【AngularJS】Controller
  3. uva 11181 - Probability|Given(概率)
  4. Struts2(七)基础小结
  5. Linux用户、组帐号和权限(学习笔记九)
  6. win7系统下用vspd软件进行串口编程实例
  7. Linux操作系统安装与VMTools的安装
  8. eclipse使用egit插件
  9. mac系统下ionic环境配置
  10. Deep compression code