2012年7月13日

摘要: 在python中,大多数容器对象都使用for来进行遍历。那么啥是迭代器呢?百度百科里面说:迭代器是一种对象,它能够用来遍历容器对象的所有元素,每个迭代器对象代表着容器中一个确定的地址。python中的迭代器不仅仅可以迭代序列类型,还可以迭代非序列类型。包括用户定义的对象。迭代器的用法在python中普遍而且统一。for语句在容器对象中调用iter()函数,这个函数会返回一个 定义了next()方法的迭代器对象。它在容器中逐一访问元素,没有后续元素,next()就会抛出一个异常,告知for循环结束。这样的话就很好的可以给自己的类定义一个迭代器了。比如:class className:def __ 阅读全文
posted @ 2012-07-13 16:26 很多不懂呀。。 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 在 Python 中, 当需要对一个 list 排序时, 一般可以用 list.sort() 或者 sorted(iterable[, cmp[, key[, reverse]]]).其中:cmp(e1, e2) 是带两个参数的比较函数, 返回值: 负数: e1 < e2, 0: e1 == e2, 正数: e1 > e2. 默认为 None, 即用内建的比较函数.key 是带一个参数的函数, 用来为每个元素提取比较值. 默认为 None, 即直接比较每个元素.reverse 是一个布尔值, 表示是否反转比较结果.我以前在做比较复杂的排序时, 喜欢写一个定制的 cmp 函数. 当我 阅读全文
posted @ 2012-07-13 11:45 很多不懂呀。。 阅读(2382) 评论(0) 推荐(0) 编辑
摘要: 在Python中,lambda允许用户快速定义单行函数,当然用户也可以按照典型的函数定义完成函数。lambda的目的就是简化用户定义使用函数的过程。>>> func =lambda x: x *2 # 定义lambda函数,通过赋值给func进行调用>>> func(3)6>>>(lambda x: x *2)(3) # lambda函数的定义和调用可以整合在一起(可读性差)6使用lambda函数应该注意的几点:lambda定义的是单行函数,如果需要复杂的函数,应该定义普通函数lambda参数列表可以包含多个参数,如 lambda x, y 阅读全文
posted @ 2012-07-13 11:01 很多不懂呀。。 阅读(23508) 评论(1) 推荐(0) 编辑
摘要: __call__Python中有一个有趣的语法,只要定义类型的时候,实现__call__函数,这个类型就成为可调用的。换句话说,我们可以把这个类型的对象当作函数来使用,相当于 重载了括号运算符。class g_dpm(object):def __init__(self, g):self.g = gdef __call__(self, t):return (self.g*t**2)/2计算地球场景的时候,我们就可以令e_dpm = g_dpm(9.8),s = e_dpm(t)。class Animal(object):def __init__(self, name, legs):self.na 阅读全文
posted @ 2012-07-13 10:11 很多不懂呀。。 阅读(329) 评论(0) 推荐(0) 编辑

导航