Chinaunix首页 | 论坛 | 博客
  • 博客访问: 179303
  • 博文数量: 69
  • 博客积分: 1430
  • 博客等级: 上尉
  • 技术积分: 686
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-22 11:12
文章存档

2011年(1)

2010年(11)

2009年(35)

2008年(22)

我的朋友

分类: LINUX

2009-05-02 18:55:51

  1. 我其实不会通过索引下标去访问一个集合,而是直接通过迭代器——是的,就是你在STL中经常见到的iterator——来迭代遍历集合。
  2. 函数xrange不返回完整的list,而是逐步迭代。所以在生成数列的时候会比range节省内存。通常大数列枚举使用xrange更有效率。
  3. 生成器推导式是我的一种衍生形式。也是Python最强有力的语法之一。我们回顾前面的
    几个例子,首先是著名的列表推导:
    >>> #九九乘法表
    >>> l = [(x, y, x*y) for x in range(1, 10) for y in range(1,
    10) if x>=y]
    >>> l
    [(1, 1, 1), (2, 1, 2), (2, 2, 4), (3, 1, 3), (3, 2, 6), (3, 3,
    9), (4, 1, 4), (4, 2, 8), (4, 3, 12), (4, 4, 16), (5, 1, 5),
    (5, 2, 10), (5, 3, 15), (5, 4, 20), (5, 5, 25), (6, 1, 6), (6,
    2, 12), (6, 3, 18), (6, 4, 24), (6, 5, 30), (6, 6, 36), (7, 1,
    7), (7, 2, 14), (7, 3, 21), (7, 4, 28), (7, 5, 35), (7, 6,
    42), (7, 7, 49), (8, 1, 8), (8, 2, 16), (8, 3, 24), (8, 4,
    32), (8, 5, 40), (8, 6, 48), (8, 7, 56), (8, 8, 64), (9, 1,
    9), (9, 2, 18), (9, 3, 27), (9, 4, 36), (9, 5, 45), (9, 6,
    54), (9, 7, 63), (9, 8, 72), (9, 9, 81)]
  4. 如果你需要一个不执行任何代码的空语句,类似C++中的;,那么,找我pass就对了。
  5. 利用try/except/finally结构,可以很方便的捕获异常。而需要手动抛出异常的话,也只需要一个raise语句。
  6. 没有返回值的函数等同于返回None。
  7. Python函数定义的时候,形参没有类型约束。这根源于Python的动态类型思想。因此,您可以方便的抽象出代码行为;也因此,您不能通过不同参数类型定义函数重载,包括类成员函数的定义也是如此。不过您可以通过定义不同的参数表来区分不同的函数定义。
  8. 函数可以通过形如key=value的形式定义可选的参数,在函数调用时,可以按顺序传入参数值,也可以通过参数名指定传入所需的参数。
  9. 在python家族中,我是函数的一种简写形式,通常用于在运行期定义临时的匿名函数:
    >>> f = lambda x, y:x**2+y**2
    >>> f(20, 5)
    425
  10. 在python定义后面加入一行字符串的话,Python解释器会视其为该定义的说明文档,可以通过help得到它。
  11. 在python中,所有的成员方法都是虚的,这充分满足了动态类型的需要。
  12. Python类型的定义中,名为__init__的函数即为构造函数。因为构造函数是一个成员方法,您可以通过引用self为对象添加成员变量。
  13. 关键字del用于删除命名或者对象引用。也用于删除序列元素。
  14. Python脚本可以通过本文格式保存,并且做为运行时组件在运行时导入代码中,人们通常称我为模块。模块名与代码文件的主文件名相同。例如,如果您编写了一个名为Items.py的程序,可以使用import Items来引入。
阅读(705) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~