
Python
hackerain
这个作者很懒,什么都没留下…
展开
-
python----yield
包含了关键字"yield"的函数就不是普通的函数。当含有这个关键字的函数被调用的时候,这个函数在遇到yield的时候会停止运行,并且返回一个迭代器(iterator)。每次请求一个值,就会执行生成的代码。直到遇到一个yield或者return。首先,我们先了解什么是迭代器。 lst=[1,2,3,4,5]for i in lst print i从这个例子我们可以看的出转载 2012-11-27 17:53:47 · 1904 阅读 · 0 评论 -
Django学习小记[6]——Class-based View
这节我们讲一下Class-based View,为什么要有这个Class-based View呢?view不都是一个方法吗?跟类有啥关系?其实答案很明显,用类其实是为了抽象,抽象出通用的,将可变的暴露出来,这样我们就可以用最少的代码实现复杂的功能了。Django中,对那些我们平时经常用的View进行了封装,比如用于渲染一个template的TemplateView,用于处理重定向的Redi原创 2014-11-08 12:42:16 · 19834 阅读 · 5 评论 -
Django学习小记[5] —— View Request/Response
在Django中,view是指一个方法,这个方法接收一个request,然后返回一个response.当客户端发送一个请求的时候,Django会创建一个HttpRequest对象,这个对象包含本次请求的所有相关信息,比如请求的路径,请求的参数,请求的方法等等,然后将这个对象作为view方法的第一个参数传给view,view经过处理之后,返回一个HttpResponse对象,这个HttpRe原创 2014-11-04 00:41:30 · 7118 阅读 · 0 评论 -
Django学习小记[4]——URL Dispatcher
URL dispatcher简单点理解就是根据URL,将请求分发到相应的方法中去处理,它是对URL和View的一个映射,它的实现其实也很简单,就是一个正则匹配的过程,事先定义好正则表达式和该正则表达式对应的view方法,如果请求的URL符合这个正则表达式,那么就分发这个请求到这个view方法中。有了这个base,我们先抛出几个问题,提前思考一下:这个映射定义在哪里?当映射很多时,如原创 2014-11-02 03:13:33 · 6606 阅读 · 1 评论 -
Django学习小记[3] —— Query
今天学习的是Django的Model Query,前一篇已经学习过Model了,讲述的主要是Django中是如何处理关系型数据的模型的,一对一,多对一,多对多等,这篇则主要是描述的查询,能够将数据存进去,还得取出来,Django给每一个Model自动提供了丰富的查询接口,而且能够进行关联查询,基本上,能够满足绝大多数的查询需求。在Django的文档中,有一句话说的非常好:A m原创 2014-10-07 00:21:13 · 16232 阅读 · 1 评论 -
Django学习小记[1] —— Start
Part 1Part 1 通过举例,从整体上过了一遍django的基本内容,包括project, app, database, model等内容。有几下内容需要注意:project vs. appapp是一个web应用程序,它是实际用来做事的,比如zinnia这个用django写的博客引擎就是一个app,但是一个project是配置文件和app的集合,相当于一个容器。一原创 2014-08-12 23:01:17 · 10317 阅读 · 0 评论 -
Django学习小记[2] —— Model
开始学习django的model了,学习django的目的很简单,就是我想用django搭建一个自己的博客,现在开源的已经有django-zinnia这个博客引擎了,但是想要看懂它,并且修改它,就必须过django这一关。之前对django的了解,仅仅限于用到了什么,就知道什么,缺乏系统的学习,所以要把django的文档都过一遍,做一下简单的笔记。今天的主题是Model,Model就是MV原创 2014-09-11 02:27:23 · 19604 阅读 · 0 评论 -
Horizon学习笔记
horizon牛逼吊炸天!程序的入口点在horizon/openstack_dashboard/urls.py中:url(r'', include(horizon.urls))然后由Horizon这个单例的Site对象,开始加载urls,自动发现并注册dashboard,然后对每一个dashboard,再自动发现并注册panel:```Horizon._lazy_u原创 2014-05-16 00:52:55 · 7092 阅读 · 2 评论 -
policy机制中经典的python用法
由于接触python时间还不长,属于边用边学,在看项目代码的时候,遇到了很多不太懂的python语法,但是我认为这些用法用的实在是好,希望以后自己在写程序时,也能写出这么经典的代码,在这里记录下来这些:1. 将函数名作为参数传递给另一个模块中的函数使用:def init(): ...... #read_cached_file做的事是读取_POLICY_PATH文件中的数据,原创 2012-11-30 12:33:27 · 3913 阅读 · 0 评论 -
python——metaclass
元类一般用于创建类。在执行类定义时,解释器必须要知道这个类的正确的元类。解释器会先寻找类属性__metaclass__,如果此属性存在,就将这个属性赋值给此类作为它的元类。如果此属性没有定义,它会向上查找父类中的__metaclass__.如果还没有发现__metaclass__属性,解释器会检查名字为__metaclass__的全局变量,如果它存在,就使用它作为元类。否则, 这个类就是一个传统类原创 2012-11-28 10:52:26 · 5104 阅读 · 0 评论 -
python学习笔记(1)
1、在Python 语言中,对象是通过引用传递的。在赋值时,不管这个对象是新创建的,还是一个已经存在的,都是将该对象的引用(并不是值)赋值给变量。 如:x=1 1这个整形对象被创建,然后将这个对象的引用赋值给x这个变量2、多元赋值,其实就是元组赋值x,y,z=1,2,'string' 等价于 (x,y,z)=(1,2,'string')利用多元赋值实现的两个变量的值交原创 2012-08-03 21:52:13 · 3403 阅读 · 0 评论 -
python学习笔记(2)
37、列表(1)添加新的元素,注意不能使用+号来添加元素,+号的使用级别是列表,即两个操作数都是列表的情况下才可以连接:>>> s=[1,2,3,4]>>> s.append(5)>>> s[1, 2, 3, 4, 5]>>> (2)序列类型函数sorted() and reversed():sorted()只是对s进行排序,并没有改变s的真实顺序>>>s=[4,5,43,原创 2012-08-03 22:01:01 · 3068 阅读 · 2 评论 -
python学习笔记(3)
43、函数(1)若函数没有返回值,则默认的返回值是None(2)装饰器装饰器实际就是函数,它接受函数对象。我们在执行函数之前,可以运行些预备代码,也可以在执行代码之后做些清理工作。这类似于java中的AOP,即面向切面编程,可以考虑在装饰器中置入通用功能的代码来降低程序复杂度。例如,可以用装饰器来:引入日志、增加计时逻辑来检测性能、给函数加入事务的能力1. 无参装饰器:@deco原创 2012-08-03 22:03:03 · 1638 阅读 · 0 评论 -
python学习笔记(4)
44、模块(1)修改搜索路径在交互模式下修改sys.path,将自己写的模块所在的目录放到这个搜索路径中,那么解释器就可以找到在这个路径下所定义的模块了,示例:>>>import sys>>> sys.path.append(r'E:\My DBank\python\py\mymodule')若要移除这个路径,那么可以使用列表中的pop()方法(2)名称空间名称空间是名称(标识符原创 2012-08-03 22:06:03 · 2034 阅读 · 0 评论 -
python中的装饰器——@
对装饰器本来就一知半解的,今天终于弄清楚了,python中的装饰器是对装饰者模式的很好运用,简化到骨子里了。python中为什么需要装饰器,看这里:http://www.cnblogs.com/huxi/archive/2011/03/01/1967600.htmlpython原理解释,看这里:http://www.openstack.org.cn/bbs/forum.原创 2012-08-08 10:28:59 · 5558 阅读 · 0 评论 -
Python单元测试——深入理解unittest
单元测试的重要性就不多说了,可恶的是python中有太多的单元测试框架和工具,什么unittest, testtools, subunit, coverage, testrepository, nose, mox, mock, fixtures, discover,再加上setuptools, distutils等等这些,先不说如何写单元测试,光是怎么运行单元测试就有N多种方法,再因为它是测试而非原创 2014-04-19 10:32:09 · 135867 阅读 · 15 评论