
python
iteye_6336
这个作者很懒,什么都没留下…
展开
-
python3.2下调用C动态链接库
python和C,我觉得这简直是无敌的组合啊。一般性的业务逻辑用python快速出模型,而碰到python运行缓慢的操作,则可以通过调用C编译好的链接库来完成。在python3.2下,可以通过ctype模块单纯的访问C链接库,也可以通过传统方式访问。ctype模块固然方便,但若要求回调的话,还是得用传统方式操作。今天查阅了官方manual和网上一些链接,感觉有些出处,在这写上一个3.2...2012-02-23 15:31:53 · 322 阅读 · 0 评论 -
python类中的__iter__, __next__与built-in的iter()函数举例
适才发现之前在pydev中使用的语法检查器是python3.2,而解释器是python2.7……罪过罪过,从此篇之后,不出意外都是使用python3.x版本解释器本文主要举例介绍python的built-in函数iter,以及类中的两个函数__iter__,__next__。其中作为iterator的对象是类,而不是容器(因为容器或generator作为iterator对象很简单,这里不多...2012-05-06 15:20:55 · 521 阅读 · 0 评论 -
从with关键字到编写自己简单的ContextManager(二)
接[url=http://luozhaoyu.iteye.com/blog/1512902]上文[/url]contextlib.contextmanager的用法是怎样的?我摘抄一下模块源代码[quote] Typical usage: @contextmanager def some_generator(): ...2012-05-05 18:59:34 · 108 阅读 · 0 评论 -
从with关键字到编写自己简单的ContextManager(一)
本文先介绍with表达式,然后再试图用with以及装饰器等知识实现自己的ContextManagerwith可以干什么?我的理解是简化try except finally的工作,比如打开文件操作符,读文件,捕捉异常,最后关闭。这个例子是with最最常用的方法了,满大街都可以找到这个例子。除文件open操作之外,其实其它很多操作也可以掐头去尾,留下中间关键操作就行。那么该如何实现呢?...2012-05-05 17:49:56 · 117 阅读 · 0 评论 -
python的property函数
python的builtin函数property其实很简单,其实就像java中bean的概念一样。可以控制类中变量的访问规则,property()函数实现的原理应该就是几天前写的__getattr__,__getattribute__等等函数有关。有人回想,为什么python要控制变量的访问?难道实现不了private和protected么?变量命名是用两条下划线不能使变量private么?...2012-05-05 01:01:34 · 137 阅读 · 0 评论 -
python实现decorator模式
python有个很常用的语法糖是@decorator,使用它可以很方便的创建decorator装饰器模式。(当然,@的用处可不只用在创建装饰器模式)方法有两种,一种是通过创建一个包裹类Wrapper,另一种就是直接通过一个函数创建closure简要说下装饰器模式:不改变目标的内部行为,改变目标的外在表现方式的一种模式。重点在于,它一定不干涉“内政”,只可以在目标的外围进行修饰,对目标是透明...2012-05-05 00:45:03 · 259 阅读 · 0 评论 -
理解django的多对多ManyToManyField
对于第一次碰到django这样类activerecord的ORM,初学者可能比较疑惑的是ManyToManyField这个字段。老鸟可以绕开,这里拿djangobook没有说明的地方来仔细解释下。[code="python"]from django.db import modelsclass Publisher(models.Model): name = models.Cha...2012-05-04 01:20:42 · 1500 阅读 · 0 评论 -
python中__get__,__getattr__,__getattribute__的区别
__get__,__getattr__和__getattribute都是访问属性的方法,但不太相同。object.__getattr__(self, name)当一般位置找不到attribute的时候,会调用getattr,返回一个值或AttributeError异常。object.__getattribute__(self, name)无条件被调用,通过实例访问属性。如果cl...2012-05-01 17:59:40 · 559 阅读 · 0 评论 -
理解python的staticmethod与classmethod实现
本文源于一时好奇,想要弄清出python的staticmethod()这一builtin方法的实现,查了一些资料(主要是python官方手册了)汇集于此python在类中,有三种调用method的方法:普通method,staticmethod和classmethod前两个应该都好理解,classmethod就是在调用这个函数的时候,会把调用对象的class object对象隐式地传进...2012-05-01 15:01:29 · 462 阅读 · 0 评论 -
osqa的错误修正1146, "Table 'osqa.forum_badge' doesn't exist"
当解压osqa并使用[code="java"]python manage.py syncdbpython manage.py runserver[/code]之后,osqa网站仍然不能访问,并报出1146, "Table 'osqa.forum_badge' doesn't exist"错误。则可能是系统存在不同版本python解决方法是删除不需要的python版本,或者设置系统环...2012-04-27 23:44:49 · 224 阅读 · 0 评论 -
安装osqa出现ImportError: cannot import name mark_safe错误
osqa是一个开源问答的软件,现在的版本是v0.9.0安装的过程中发现不能使用django1.4,django1.4与其有很多地方冲突。故需要在sites-package文件夹中删除django1.4安装django1.3.1但是使用django1.3.1之后,出现了ImportError: cannot import name mark_safe错误。解决办法是修改forum/u...2012-04-27 15:43:38 · 267 阅读 · 0 评论 -
python使用ctype调用C链接库
相对于[url=http://luozhaoyu.iteye.com/blog/1420213]传统的C调用[/url],使用ctype实在是太简单了编写一个动态链接库ctype_test.c,[code="java"]#include int foo(int a, int b){ printf("Your input %i and %i\n", a, b);...2012-02-23 15:56:36 · 589 阅读 · 0 评论 -
简要介绍python的元编程的metaclass
平时经常看到元编程、DSL这样的字眼,它到底是什么意思?我的理解来看。元编程就是“代码生成器”,你可以通过一些代码生成另一些代码(动态地、按需的)。DSL则是domain special language:为了解决某个问题而发明的语言,比如HTML SQL YACC,它的反面是C JAVA Python这些通用语言。与DSL经常提到的是ruby,为什么说ruby可以DSL呢?因为它语法丰富,支...2012-05-07 22:36:49 · 170 阅读 · 0 评论