要故意出发异常,可以使用raise语句,形式如下: raise <name>  #manually trigger an exception raise<name>,<value> #pass extra data to catcher too raise  #re-raise the most recent excepti 第二种形式可以随着异常传递额外的数据,从而为处理器提供细节. assert <test>,<data>  #<dat…
模块 Module 什么是模块: 1.模块是一个包含有一系列数据,函数,类等组成的程序组 2.模块是一个文件,模块文件名通常以.py结尾 作用: 1.让一些相关数据,函数,类等有逻辑的组织在一起,使逻辑结构更加清晰 2.模块中的数据,函数和类等可提供给其它模块或程序使用 模块的分类:(同一个模块在不同的操作系统下可能数不同类型的模块) 1.内置模块(builtins),一般是用C语言来写的,在解析器的内部可以直接使用.模块说明中有builtins关键字 2.标准库模块,安装python时已经安装…
首先,看这一段代码: class A(object): x = 1 gen = (lambda t: (t for _ in xrange(10)))(x) if __name__ == '__main__': print(list(A.gen)) 打印出: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1] 装饰器学习: 看这篇文章应该就可以了:<Python装饰器学习(九步入门)> 里面提到 http://www.cnblogs.com/huxi/archive/2011/03/…
1. 项目背景 在Python即时网络爬虫项目启动说明中我们讨论一个数字:程序员浪费在调测内容提取规则上的时间太多了(见上图),从而我们发起了这个项目,把程序员从繁琐的调测规则中解放出来,投入到更高端的数据处理工作中. 这个项目推出以后受到很大关注,因为开放源码,大家可以在现成源码基础上进一步开发.然而,Python3和Python2是有区别的,<Python即时网络爬虫项目: 内容提取器的定义> 一文的源码无法在Python2.7下使用,本文将发布一个Python2.7的内容提取器. 2.…
一.命名空间 1. 命名空间 命名空间是一个字典,key是变量名(包括函数.模块.变量等),value是变量的值. 2. 命名空间的种类和查找顺序 - 局部命名空间:当前函数 - 全局命名空间:当前模块 - 内建命名空间:所有Python环境,所有模块 查找顺序      1.先在当前 (嵌套的或 lambda) 函数的命名空间中搜索      2.然后是在父函数的命名空间中搜索      3.接着是模块命名空间中搜索      4.最后在内置命名空间中搜索 要到内置命名空间都没找到的话,就会弹…
有关于python里raise显示引发异常的方法: 当程序出错时,python会自动触发异常,也可以通过raise显示引发异常 一旦执行了raise语句,raise之后的语句不在执行 如果加入了try,except,那么except里的语句会被执行 代码如下: try: s = None if s is None: print('s是空对象') raise NameError print(len(s)) except Exception: print('空对象没有长度')…
说到装饰器,就不得不说python自带的三个装饰器: 1.@property   将某函数,做为属性使用 @property 修饰,就是将方法,变成一个属性来使用. class A(): @property def pfunc(self): return self.value @pfunc.setter def pfunc(self,value): self.value = value @property def pfunc1(self): print('this is property') i…
一.闭包 1. 如果一个函数定义在另一个函数的作用域内,并且引用了外层函数的变量,则该函数称为闭包. def outter(): name='python' def inner(): print name return inner res=outter() 把inner的地址赋值给res res() 相当于执行inner()函数.通过闭包,可以把局部变量在外部也可以使用 2.判断是否为闭包 res.func_closure inner()函数就是一个闭包 3.通过闭包,可以把局部变量在外部也可以…
一.装饰器 装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插入日志.性能测试.事务处理等. 装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量函数中与函数功能本身无关的雷同代码并继续重用.概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能. 装饰器功能: 1. 自动执行装饰器函数 并且将被装饰函数当做参数对象本身,传递进去 2. 将装饰器函数的返回值,重新赋值给被装饰的函数 用伪代码就是如下表示: # 装饰器是一个函数,而其参数为另外一个函数 def…
Python进阶(七)----带参数的装饰器,多个装饰器修饰同一个函数和递归简单案例(斐波那契数列) 一丶带参数的装饰器 def wrapper_out(pt): def wrapper(func): def inner(*args,**kwargs): useinput = input('请输入用户名:>>').strip() password = input('请输入密码:>>').strip() with open(pt,encoding='utf-8') as f: for…