
Python
文章平均质量分 70
ponder008
这个作者很懒,什么都没留下…
展开
-
Python入门
一、Python全景图1、程序由模块组成2、模块包含语句3、语句包含表达式4、表达式建立并处理对象 二、Python中的基本数据类型和标准操作 内置对象类型:数字1234,3.1415,999L,3+4j,Decimal字符串'spam',"guido's原创 2011-07-03 11:38:42 · 1103 阅读 · 0 评论 -
适配器模式(python)
适配器模式:将一个类的接口转换成客户希望的另外一个接口。使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。应用场景:希望复用一些现存的类,但是接口又与复用环境要求不一致。分类:类适配器(通过多重继承)、对象适配器。#encoding=utf-8##by panda#适配器模式def printInfo(info): print unicode(inf原创 2011-10-22 16:44:29 · 3789 阅读 · 2 评论 -
组合模式(python)
组合模式:针对“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。#encoding=utf-8##by panda#组合模式def printInfo(info): print unicode(info, 'utf-8').encode('gbk')#Component:公司抽象类class Company: name = ''原创 2011-10-25 09:19:04 · 2710 阅读 · 0 评论 -
迭代器模式(python)
迭代器模式:提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。python内置支持这种模式,所以一般来说,不用自己写,#encoding=utf-8##by panda#迭代器(Iterator)模式def printInfo(info): print unicode(info, 'utf-8').encode('gbk')#迭代器抽象类原创 2011-10-25 11:25:24 · 2147 阅读 · 0 评论 -
备忘录模式(python)
备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。跟原型模式很像,不过在原型模式中保存对象的一切,而备忘录模式中只保存恢复时需要的数据。#encoding=utf-8##by panda#备忘录模式def printInfo(info): print unicode(info, 'u原创 2011-10-24 09:57:12 · 1906 阅读 · 0 评论 -
单例模式(python)
单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。实现“某个类只有一个实例”途径:1、让一个全局变量使得一个对象被访问,但是它不能防止外部实例化多个对象。2、让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可以被创建。即单例模式。多线程时的单例模式:加锁——双重锁定。饿汉式单例类:在类被加载时就将自己实例化(静态初始化)。其优点是躲避了多线程访原创 2011-10-25 21:04:30 · 2625 阅读 · 0 评论 -
桥接模式(python)
桥接模式:将系统抽象部分与它的实现部分分离,使它们可以独立地变化。由于目标系统存在多个角度的分类,每一种分类都会有多种变化,那么就可以把多角度分离出来,让它们独立变化,减少它们之间的耦合。#encoding=utf-8##by panda#桥接模式def printInfo(info): print unicode(info, 'utf-8').encode('g原创 2011-10-26 18:21:50 · 3240 阅读 · 0 评论 -
命令模式(python)
命令模式:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;支持对请求排队、记录请求日志,以及可撤销的操作。优点:把请求一个操作的对象与知道怎么执行一个操作的对象分隔开。#encoding=utf-8##by panda#命令模式def printInfo(info): print unicode(info, 'utf-8').encode('原创 2011-10-26 19:35:14 · 3005 阅读 · 0 评论 -
职责链模式(python)
职责链模式:将能处理请求的对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理请求为止,避免请求的发送者和接收者之间的耦合关系。#encoding=utf-8##by panda#职责连模式def printInfo(info): print unicode(info, 'utf-8').encode('gbk')#抽象职责类class Manager()原创 2011-10-27 20:27:27 · 2095 阅读 · 0 评论 -
中介者模式(python)
中介者模式:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。一般应用于一组对象以定义良好但是复杂的方式进行通信的场合。优点:降低了各个模块的耦合性。缺点:中介对象容易变得复杂和庞大。#encoding=utf-8##by panda#中介者模式def printInfo(info): p原创 2011-10-27 21:12:12 · 1694 阅读 · 0 评论 -
享元模式(python)
享元模式:运用共享技术有效地支持大量细粒度的对象。内部状态:享元对象中不会随环境改变而改变的共享部分。比如围棋棋子的颜色。外部状态:随环境改变而改变、不可以共享的状态就是外部状态。比如围棋棋子的位置。应用场景:程序中使用了大量的对象,如果删除对象的外部状态,可以用相对较少的共享对象取代很多组对象,就可以考虑使用享元模式。#encoding=utf-8##by panda#原创 2011-10-28 10:47:11 · 1896 阅读 · 0 评论 -
访问者模式(python)
访问者模式:表示一个作用于某对象结构中的各元素的操作。它可以使你在不改变各元素的类的前提下定义作用于这些元素的新操作。访问者模式适用于数据结构相对稳定而基于该数据结构的操作需要经常扩展的系统。因为该模式的优点就是增加新的操作很容易。#encoding=utf-8##by panda#访问模式def printInfo(info): print unicode(info,原创 2011-10-29 12:49:36 · 2970 阅读 · 0 评论 -
wxPython学习一:基本代码框架
#encoding=utf-8##by panda'''wxPython程序基本框架'''def printInfo(info): print unicode(info, 'utf-8').encode('gbk')import wxclass Frame(wx.Frame): passclass App(wx.App): def OnInit(self原创 2011-10-30 21:41:46 · 1119 阅读 · 0 评论 -
“即时标记”
项目需求和原型设计来自于:《Python基础教程》第20章类图:相对于原版的代码,主要是把“Filter”的功能从Handler中独立出来了,使得功能模块更加清晰一点。代码如下:#encoding=utf-8#by pandaimport reclass filter(): '''为特定文本添加修饰性标签''' patterns =原创 2011-11-20 19:55:05 · 2008 阅读 · 1 评论 -
python中神奇的星号
传递实参和定义形参(所谓实参就是调用函数时传入的参数,形参则是定义函数是定义的参数)的时候,你还可以使用两个特殊的语法:``*`` ** 。调用函数时使用* **test(*args) * 的作用其实就是把序列 args 中的每个元素,当作位置参数传进去。比如上面这个代码,如果 args 等于 (1,2,3) ,那么这个代码就等价于 test(1, 2, 3) 。test(*转载 2011-11-04 17:44:29 · 929 阅读 · 0 评论 -
状态模式(python)
状态模式:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。应用场景:一个对象的行为取决于它的状态,即它必须在运行时刻根据状态改变它的行为。如果控制状态转换的条件表达式过于复杂,就可以考虑使用状态模式。关键点:把状态的判断逻辑转移到表示不同状态的一系原创 2011-10-19 10:58:56 · 3174 阅读 · 0 评论 -
原型模式(python)
原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式本质就是克隆对象,所以在对象初始化操作比较复杂的情况下,很实用,能大大降低耗时,提高性能,因为“不用重新初始化对象,而是动态地获得对象运行时的状态”。浅拷贝(Shallow Copy):原创 2011-10-10 10:30:32 · 3193 阅读 · 0 评论 -
如何使用和制作 Python 安装模块(setup.py)
Python模块的安装方法:1. 单文件模块:直接把文件拷贝到$python_dir/lib2. 多文件模块,带setup.py:python setup.py install 3. egg文件,类似Java的jar:1) 下载ez_setup.py,运行pytho转载 2011-07-08 14:16:35 · 62280 阅读 · 0 评论 -
使用setuptools自动安装python模块
setuptools绝对是个好东西,它可以自动的安装模块,只需要你提供给它一个模块名字就可以了,并且自动帮你解决模块的依赖问题。一般情况下用setuptools给安装的模块会自动放到一个后缀是.egg的目录里,下面看看怎么用setuptools。 首先,需要安装setupt转载 2011-07-08 14:18:49 · 1779 阅读 · 0 评论 -
格式化字符串%r
在python中格式化字符%r,表示打印的是对象day1 = "%r" % """hello,\nworld!"""day2 = "%s" % """hello,\nworld!"""print day1print day2结果为:'hello,\nw原创 2011-08-02 13:34:59 · 1582 阅读 · 0 评论 -
采用简单工厂模式实现计算器(python版)
工厂模式的核心:有这样一群类,他们区别很小,就像运算符类,他们的区别仅仅就是不同的运算符号。这样我们可以建一个工厂,按需“生产”出所需的所需要的类的实例。#encoding=utf-8##by panda#简单工厂模式class OperateBas原创 2011-09-20 10:06:27 · 2181 阅读 · 0 评论 -
策略模式(实现柜台结账模块)
策略模式是一种定义一系列算法的方法,从概念上,所有这些算法完成的都是相同的工作,只是实现不同。所以可以实现context类,他可以以相同的方式调用所有的算法,减少了各类算法类与使用算法类之间之间的耦合。#encoding=utf-8##by panda#策略模式原创 2011-09-21 11:43:00 · 1519 阅读 · 0 评论 -
装饰模式(python)
装饰模式:动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。应用场景:适用于 "新加入的功能仅仅是为了满足一些只在某些特定情况下才会执行的需求“。优点:1、把类中的装饰功能从类中去除,简化原有的类。2、装饰模式把每个要装饰的功能放在单原创 2011-09-26 16:02:58 · 2250 阅读 · 0 评论 -
代理模式(python)
代理模式(Proxy):为某个对象提供一种代理以控制对这个对象的访问。注意:代理模式和策略模式的类图很相近,实现方法也是一样的,但是应用场景很不一样,体现了不同的思想。 策略模式中同一外部对象访问上下文对象的操作一样,但是里面的策略对象不同。 代理模式中不原创 2011-09-27 10:35:16 · 4891 阅读 · 1 评论 -
模板方法模式(python)
模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。因此模板方法使得子类可以在不改变一个算法的结构的情况下重新定义该算法的某些特定变量。优点:把不变行为搬移到超类,去除子类中的重复代码。#encoding=utf-8##by panda#模板方法原创 2011-10-11 10:38:18 · 4210 阅读 · 1 评论 -
外观(Facade)模式[python版]
外观(Facade)模式:为子系统中的一组接口提供一个一致的界面。——此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。与其它模式的区别:与 “简单工厂模式+策略模式”的组合版 很类似,不过外观类的接口不是简单的调用功能类的相应接口,而是封装成了新的接口。原创 2011-10-13 09:46:05 · 1806 阅读 · 0 评论 -
建造者模式(python实现)
建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。相关模式:思路和模板方法模式很像,模板方法是封装算法流程,对某些细节,提供接口由子类修改,建造者模式更为高层一点,将所有细节都交由子类实现。代码:#encoding=utf-原创 2011-10-14 10:13:33 · 2014 阅读 · 0 评论 -
观察者模式(python版)
观察者模式:又叫发布-订阅模式。 它定义了一种一对多的依赖关系,让多个观察者对象同时鉴定某一个主题对象。这个主题对象在状态发生变化时,会通知所有的观察者对象,使它们能够自动更新自己。观察者模式所做的工作实际上就是解耦,根据“依赖倒转原则”,让耦合的双方都依赖于抽象,原创 2011-10-17 11:03:12 · 5072 阅读 · 0 评论 -
python对象复制
原文地址:http://edu.codepub.com/2010/0921/26021.php需求:你想复制一个对象.因为在Python中,无论你把对象做为参数传递,做为函数返回值,都是引用传递的.讨论:标准库中的copy模块提供了两个方法来实现拷贝.一个转载 2011-10-10 09:45:16 · 883 阅读 · 0 评论 -
抽象工厂模式(python版)
抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。优点:易于交换“产品系列”,只要更改相应的工厂即可。缺点:建立产品的时候很繁琐,需要增加和修改很多东西。优化1:为了避免客户端有过多的逻辑判断,可以封装出一个简单工厂类来生成产品类。原创 2011-10-18 21:13:50 · 6535 阅读 · 2 评论 -
工厂方法(python)
简单工厂模式的最大优点就是工厂类内部包含了必要的逻辑判断,客户端只要提供选择条件即可,这样客户端就不需要知道具体产品的信息了。但是每次增加产品就要修改工厂类,违背了“开放-封闭”原则。所以,有了工厂方法模式工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一原创 2011-10-09 13:23:37 · 5969 阅读 · 0 评论 -
python异常信息捕获方法整理归纳
方法一:try:....print 1/0except Exception,con:....print Exception,":",con#con可以换成其它的名字################################方法二:try:....print 1/0except:....import traceback....traceb转载 2011-12-09 09:36:25 · 5552 阅读 · 0 评论