在软件构建过程中,某些对象的状态如果改变,其行为也会随之而发生变化。如何在运行时根据对象的状态来透明地更改对象的行为?而不会为对象操作和状态转化之间引入紧耦合?允许一个对象在其内部状态改变时改变它的行为。从而使对象看起来似乎修改了其行为。一,结构:二,示例代码:publicinterfaceState{publicvoidhandle(Contextcontext);}classConcreteStateAimplementsState{publicvoi
系统 2019-08-12 09:29:27 2212
最近开始研究Python的并行开发技术,包括多线程,多进程,协程等。逐步整理了网上的一些资料,今天整理了一下greenlet相关的资料。并发处理的技术背景并行化处理目前很受重视,因为在很多时候,并行计算能大大的提高系统吞吐量,尤其在现在多核多处理器的时代,所以像lisp这种古老的语言又被人们重新拿了起来,函数式编程也越来越流行。介绍一个python的并行处理的一个库:greenlet。python有一个非常有名的库叫做stackless,用来做并发处理,主
系统 2019-09-27 17:56:35 2211
目录第十五章、python中的进程操作-开启多进程一、multprocess模块二、multprocess.process模块三、Process()对象方法介绍四、Process()对象属性介绍五、使用process模块创建进程六、进程之间的数据隔离问题七、守护进程八、terminate方法九、pid和name属性第十五章、python中的进程操作-开启多进程一、multprocess模块multiprocess不是一个模块而是python中一个操作、管理
系统 2019-09-27 17:56:35 2211
不是说while就不用,比如前面所列举而得那个猜数字游戏,在业务逻辑上,用while就更容易理解(当然是限于那个游戏的业务需要而言)。另外,在某些情况下,for也不是简单地把对象中的元素遍历一遍,比如有有隔一个取一个的要求,等等。在编写代码的实践中,为了对付循环中的某些要求,需要用一些其它的函数,比如前面已经介绍过的range就是一个被看做循环中的计数器的好东西。range在《有容乃大的list(4)》中,专门对range()这个内置函数做了详细介绍,看官
系统 2019-09-27 17:55:50 2211
python动态语言在运行时可以改变类的结构,添加属性,添加方法删除函数添加属性:就是在类的结构以外添加属性也可以修改1.添加对象属性(1)p1.age="123"#使用对象名创建(2)setattr(p1,"home","阳光小区")#使用内置方法设置和取得属性值getattr(p1,"home")#取得新增属性的值2.添加类属性(1)Preson.ID=111112#使用类名创建添加方法:3.添加对象方法importtypesdefstudy(self
系统 2019-09-27 17:55:39 2211
课程导学001课程定位和目标002课程导学第一部分Python快速入门第1天Python基本语法元素003Python基本语法元素004程序设计基本方法005Python开发环境配置006实例1-温度转换007Python程序语法元素分析008Python基本语法元素小结第2天Python基本图形绘制009Python基本图形绘制010深入理解Python语言011实例2-Python蟒蛇绘制012模块1-turtle库的使用013turtle程序语法元素
系统 2019-09-27 17:55:32 2211
今天终于可以用wxPython开发GUI程序了,非常高兴。把其中的一些注意点写下来以供参考。在windowsXP平台下,首先需要做以下环境的配置:1.首先是安装python,安装完之后将python/bin所在目录添加到path中。2.安装wxPython,此时要注意wxPython的版本要与前面python的版本一致。3.安装py2exe,这是windows平台下一个非常好的python程序发布工具,可以将python程序编译成exe而脱离python环
系统 2019-09-27 17:55:05 2211
Python高级专用类方法的实例详解除了__getitem__和__setitem__之外Python还有更多的专用函数。某些可以让你模拟出你甚至可能不知道的功能。下面的例子将展示UserDict一些其他专用方法。def__repr__(self):returnrepr(self.data)(1)def__cmp__(self,dict):(2)ifisinstance(dict,UserDict):returncmp(self.data,dict.dat
系统 2019-09-27 17:53:44 2211
代码如下#!/bin/python#coding=utf-8#python-version=2.75#使用python2fromftplibimportFTP#引用ftplib库中的FTP功能模块,进行ftp下载使用importtime#引用time模块importos#引用os模块"""使用字典,定义交换机主机,一个字典包含多个键,一个键使用一个列表,包含多个主机地址按照实际情况定义"""dic={'tongjiju':['XXXX.XXXX.XXXX.
系统 2019-09-27 17:52:21 2211
在网络通信中,每个连接都必须创建新线程(或进程)来处理,否则,单线程在处理连接的过程中,无法接受其他客户端的连接。所以我们尝试使用协程来实现服务器对多个客户端的响应。与单一TCP通信的构架一样,只是使用协程来实现多个任务同时进行。#服务端importsocketfromgeventimportmonkeyimportgeventmonkey.patch_all()defhandle_conn(seObj):whileTrue:re_Data=seObj.r
系统 2019-09-27 17:50:26 2211