python
文章平均质量分 73
jenny_yu1025
不负光阴,不负卿
展开
-
python实现自动化远程控制(1)--画UML类图
1. UML类图基础--各种关系的表示方法 2. 自动化远程控制的UML图 自动化远程控制的主要要求: 1. 远程登录客户端,无需输入密码。可以使同时登录多台客户端,也可以多跳登录客户端 2. 在登录的服务器上,执行命令,能过根据命令执行结果,进行相应操作原创 2012-06-17 22:08:17 · 2090 阅读 · 2 评论 -
装饰模式-Python版---穿什么有这么重要?
装饰模式模式模式应用于动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活。Component类class Component: def Operation(self): passConcreteComponent类class ConcreteComponent(Component): def Operatio原创 2015-03-06 17:10:13 · 500 阅读 · 0 评论 -
代理模式(Python版)---为别人做嫁衣
没有代理的代码class SchoolGirl: def __init__(self, name): self.name = name def SetName(self, name): self.name = name def GetName(self, name): return self.name clas原创 2015-03-08 21:59:32 · 588 阅读 · 0 评论 -
模板方法模式Python版--考题抄错会做也白搭
重复=易错+难改class TestPaperA def TestQuestion1(self): print "Test question 1" print "Answer: b" def TestQuestion2(self): print "Test question 2" print "Answer原创 2015-03-09 16:49:03 · 457 阅读 · 0 评论 -
建造者模式Python版--好菜每回味不同(第13章)
建造者模式是在当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时适用的模式。原创 2015-03-10 13:40:47 · 554 阅读 · 0 评论 -
观察者模式 Python版--第14章
双向耦合的代码class Secretary: observers = [] action = None def Attach(self, observer): self.observers.append(observer) def Notify(self): for o in observers: o.Upd原创 2015-03-10 16:32:40 · 363 阅读 · 0 评论 -
Python基础知识之封装篇
通过下面一个实例说明Python封装里面的几个基本概念:对象:类对象,实例对象属性:类属性,实例属性方法:实例方法,类方法,静态方法class Person: ##Person是类名,类定义完成之后,就会产生全局的类对象Person name = None ##name是公有的类属性 __原创 2015-03-11 09:58:13 · 459 阅读 · 0 评论 -
浅析DNS原理及配置
DNS的解析工作有正向和反向,正向解析是将域名解析成IP地址。DNS通常都是通过bind来架设的,rndc是Bind的守护进程配置工具。rndc用来启动,停止,重载配置文件。安装chroot来严格控制DNS程序运行时的权限,减少黑客攻击的危害。DNS的解析过程为:快速查询本地的/etc/hosts文件查询本地缓存本地局域网的DNS服务器迭代或递归查询公共的DNS服务器DNS原创 2015-03-11 17:17:51 · 608 阅读 · 0 评论 -
策略模式----商场促销--Python版
策略模式示例:商场收银软件---营业员根据客户所购买商品的单价和数量,向客户收费。商场会不定期的举行各种活动,如 满100减30, 满200减70, 打8折, 满100积分10点等。很容易想到用简单工厂模式实现,如下图是简单工厂模式的UML类关系图。收费类--父类class CashSuper: def AcceptCash(self, money):原创 2015-03-06 15:45:46 · 1212 阅读 · 0 评论 -
python中的super()和object用法
super解决的问题是:python的面向对象有多重继承的特点,子类继承父类。如果采用非绑定的类方法,用父类名来引用的方法,并在参数列表中引入待绑定的对象self,从而达到调用父类的目的。这样的缺点就是当子类的父类发生变化是,必须遍历整个类定义,把所有的通过非绑定的方法的类名都全部替换过来。super用来解决多重继承的问题,解耦了子类和父类之间的绑定。使用多重继承,会涉及到翻译 2015-03-16 17:49:12 · 652 阅读 · 0 评论 -
工厂方法模式Python版--雷锋依然在人间
简单工厂模式实现计算器的UML关系图代码实现class OperationFactory: operators = {} operators['+'] = OperationAdd() operators['-'] = OperationSub() operators['*'] = OperationMul() o原创 2015-03-08 23:23:16 · 752 阅读 · 0 评论 -
使用Fabric自动化你的任务
fabric是什么?Fabric是一个Python库,可以通过SSH在多个host上批量执行任务。你可以编写任务脚本,然后通过Fabric在本地就可以使用SSH在大量远程服务器上自动运行。这些功能非常适合应用的自动化部署,或者执行系统管理任务。让我们首先看一个例子。我们知道在*NIX下面,uname命令是查看系统的发行版。可以写这样一个Fabric脚本:from fabric.转载 2012-06-25 11:21:21 · 776 阅读 · 0 评论 -
在Ubuntu 9.10如何安装和使用fabric模块
在Ubuntu 9.10如何安装和使用面料从它的网站:“ 面料是一个Python库和命令行工具,用于简化应用程序部署或系统管理任务的SSH使用。 更具体地说,面料是:一个工具,可以让你通过命令行执行任意Python函数;一个子程序库(较低级别的库之上)来执行shell命令通过SSH容易和Python的。当然,大多数用户结合这两件事,用布编写和执行Python函数或任转载 2012-06-25 11:24:50 · 581 阅读 · 0 评论 -
expect spawn、linux expect 用法
使用expect实现自动登录的脚本,网上有很多,可是都没有一个明白的说明,初学者一般都是照抄、收藏。可是为什么要这么写却不知其然。本文用一个最短的例子说明脚本的原理。 脚本代码如下: ############################################## #!/usr/bin/expect set timeout 30 spawn ss转载 2012-06-26 17:50:58 · 735 阅读 · 0 评论 -
Python执行系统命令的方法 os.system(),os.popen(),commands
最近在做那个测试框架的时候发现 Python 的另一个获得系统执行命令的返回值和输出的类。os.system 调用系统命令,完成后退出,返回结果是命令执行状态,一般是0os.popen 可以实现一个“管道”,从这个命令获取的值可以在python 中继续被使用os.popen使用语法如下:os.popen('CMD').readlines()[0]最开始的转载 2012-08-07 09:21:22 · 1190 阅读 · 0 评论 -
简单工厂模式--Python版
简单工厂模式简单工厂模式的主要思想就是通过接口和继承来创建不同子类,属于类的创建型模式,适合对大量具有相同接口的类进行实例化,推迟到运行的时候才决定要创建哪个类的实例。示例:写一个计算器控制台程序,要求输入两个数和运算符号,得到结果。理由: 加减乘除法的都是对两个数进行运算,区别在于运算符不同,运算方式略有不同。 故可以用工厂模式,先创建一个运算类作原创 2015-03-06 13:06:41 · 652 阅读 · 0 评论 -
外观模式Python版--牛市股市还会亏钱?
股民炒股代码class Stock1: def Sell(self): print "Stock 1 sell." def Buy(self): print "Stock 1 buy." class Stock2: def Sell(self): print "Stock 2 sell." d原创 2015-03-09 17:36:54 · 546 阅读 · 0 评论 -
初学设计模式
设计模式是什么学习设计模式有什么好处如何学习设计模式1.设计模式是什么?设计模式是在软件开发过程中,经过验证,用于解决在特定环境下,重复出现的、特定问题的解决方案。在学习设计模式的时候,通过要熟悉一下几个部分:模式名称环境和问题解决方案效果和优缺点设计模式主要分为三大类:创建类模式:抽象了对象实例化的过程,用来帮助创建对象的实例结构型模式:描述如何组合类原创 2015-03-15 16:05:34 · 416 阅读 · 0 评论 -
Python中线程和函数的区别--实例演示
假设我们要检查本地网络中哪些IP地址是可达的哪些是不可达的,我们可以用循环来实现,也可以用线程来实现。不用线程的实现方式:#!/usr/bin/pythonimport os, re, threading, commands, timestatus = ["no respones","alive, but 50% package loss","alive","shouldn't occ原创 2015-04-17 14:15:11 · 672 阅读 · 0 评论 -
Python的多线程threading模块
线程是操作系统调度的最小单元,线程通常通过fork()来创建。线程通常存在在进程中,一个进程可以有多个线程。这些线程共享进程的内存和状态。线程的处理比进程简单,所以线程有称为轻量级进程。有两种线程:内核线程,是操作系统的一部分。用户空间线程或用户线程,不在内核中执行。每个进程至少有一个线程,即进程本身。在单CPU机器中,多个线程的并发是通过线程调度或时间分片。线原创 2015-04-17 16:14:51 · 692 阅读 · 0 评论 -
大话设计模式(Python版)--外观模式
股民炒股代码:#!/usr/bin/env pythonfrom abc import ABCMeta,abstractmethodclass Stock1: def Sell(self): print('sell out stock 1 ') def Buy(self): print('buy stock 1')class Stock2原创 2016-10-31 10:00:24 · 516 阅读 · 0 评论 -
大话设计模式(Python版)--观察者模式
双向耦合的代码#!/usr/bin/env pythonclass Secretary: def __init__(self): self.action = None self.observers = list() def Attach(self,observer): self.observers.append(observe原创 2016-10-31 14:25:06 · 441 阅读 · 0 评论 -
大话设计模式(Python版)--状态模式
工作状态--函数版#!/usr/bin/env pythondef WriteProgram(hour, workFinished=False): if(hour < 12): print("current time: ",hour,' work at morning, spirit') elif(hour < 13): print("cur原创 2016-10-31 18:38:57 · 561 阅读 · 0 评论 -
大话设计模式(Python版)--适配器模式
适配器模式--v1#!/usr/bin/env pythonfrom abc import abstractmethodclass Target: @abstractmethod def Request(self): print("normal request")class Adaptee: def SpecificRequest(self):原创 2016-10-31 20:27:37 · 324 阅读 · 0 评论 -
大话设计模式(Python版)--职责链模式
加薪代码初步:#!/usr/bin/env pythonclass Request: @property def RequestType(self): return self.__requestType @RequestType.setter def RequestType(self,value): self.__reques原创 2016-11-01 10:56:30 · 327 阅读 · 0 评论 -
大话设计模式(Python版)--享元模式
网站类:#!/usr/bin/env pythonclass WebSite: def __init__(self, name): self.__name = name def Use(self): print('classify website:',self.__name)def main(): ps = WebSite('Pr原创 2016-11-01 13:07:35 · 369 阅读 · 0 评论 -
大话设计模式(Python版)--解释器模式
解释器模式v1:#!/usr/bin/env pythonfrom abc import abstractmethod,ABCMetaclass AbstractExpression: __metaclass__ = ABCMeta @abstractmethod def Interpret(self, context): passclass T原创 2016-11-01 14:23:11 · 425 阅读 · 0 评论 -
大话设计模式--简单工厂模式(Python版本)
本文主要讲如何从面向过程到面向对象的演进,通过4个迭代逐步看到揭示面向过程的局限性和面相对象的优越性。以计算器为例,采用简单工厂模式,用Python编程实现,在学习设计模式的同时也学习了Python,相辅相承。原创 2016-10-27 21:36:58 · 563 阅读 · 0 评论 -
大话设计模式(Python版)--模板方法模式
重复=易错+难改#!/usr/bin/env pythonclass TestPaperA: def TestQuestion1(self): print('TestQuestion1') print('Answer: b') def TestQuestion2(self): print('TestQuestion2')原创 2016-10-31 08:14:59 · 440 阅读 · 0 评论 -
大话设计模式(Python版)--代理模式
没有代理的代码#!/usr/bin/env pythonclass Pursuit: def __init__(self, girl): self.girl = girl def GiveDolls(self): print(self.girl.name,",give you a doll") def GiveFlowers(self原创 2016-10-30 22:44:20 · 333 阅读 · 0 评论 -
大话设计模式(Python版)--原型模式
简历代码初步实现--第一版:#!/usr/bin/env pythonclass Resume: def __init__(self,name): self.__name = name def SetPersonInfo(self,sex,age): self.__sex = sex self.__age = age原创 2016-10-30 21:57:36 · 374 阅读 · 0 评论 -
Perl和Python的比较(主要是性能比较)
Python语法简单,而且通过缩进的方式来表现层次结构,代码非常简明易懂,对初学者来说,比较容易上手。Perl的模式匹配非常强大,同时匹配的符号有很多种,难以阅读和维护。在文本处理方面,python通过加载re模块来实现模式匹配的查找和替换。而Perl内置就有模式匹配功能。note:内置命令和外部命令的区别。通过代码来直接做比较。python版:#!/usr/bin/pyt原创 2015-04-29 15:42:09 · 1975 阅读 · 0 评论 -
Python中的装饰器(语法糖)
装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插入日志,性能测试,事务处理等。装饰器是为了解决这类问题的绝佳设计,抽离出大量函数中与函数本身无关的雷同代码并继续重用。装饰器的作用就是为了已经存在的对象添加额外的功能。装饰器是一个函数,用来包装函数的函数。第一步,一个简单的函数#!/usr/bin/pythondef myfunc(): pr原创 2015-04-28 12:54:41 · 860 阅读 · 0 评论 -
python菜鸟升级路--自动化解析生成xml文件
以前写过一个自动解析并生成netconf xml的python脚本,从性能、易读性、模块化等几个方便重构。这个脚本的作用是生成netconf xml格式的配置文件。这个脚本完成的工作主要有:根据表名和操作类别,就能自动判别或设置表ID。这一点非常重要,因为同一个表的不同配置页是通过ID来识别的。根据表名自动获取其层次关系,以及入参重构netconf xml配置文件原创 2016-09-22 18:37:02 · 926 阅读 · 0 评论 -
python菜鸟升级路--文件搜索和处理
问题:需要从一个配置文件中提取出case list,并计算case数量。每行一个case,但是其中也有空白行和加了注释的无用行。配置文件的注释方式有#,或者//。配置文件的格式:[DEFINE]ABC_Server_IPAddr := "10.170.9.123" [MODULE_PARAMETERS]tsp_mgcLocalIPAddr := $ABC_Traff原创 2016-09-19 17:32:13 · 408 阅读 · 0 评论 -
python面向对象之封装
抽象是隐藏多余细节的艺术。在面向对象的概念中,抽象的直接表现形式通常为类。虽然Python是解释性语言,但是它是面向对象的,从设计之初就已经是一门面向对象的语言。Python基本上提供了面向对象编程语言的所有元素,如果你已经至少掌握了一门面向对象语言,那么利用Python进行面向对象程序设计将会相当容易。下面就来了解一下如何在Python中进行对象编程。一. 如何定义一个类转载 2016-09-28 14:48:26 · 639 阅读 · 0 评论 -
装饰器--棉花糖语法Python
该篇文章从浅显到深入的探索Python的装饰器。Python的装饰器简洁但功能强大。原创 2016-11-08 18:06:06 · 810 阅读 · 0 评论 -
大话设计模式(Python版)--装饰器模式
第一版#!/usr/bin/env pythonclass Person: def __init__(self, name): self.__name = name def WearTShits(self): print("Big T-Shits") def WearBigTrouser(self): print("B原创 2016-10-30 11:03:24 · 504 阅读 · 0 评论 -
大话设计模式(Python版)--工厂模式
本文主要讲述了工厂模式的优势,并且通过计算器和雷锋工厂的例子展示出来,并用Python实现。原创 2016-10-28 22:14:41 · 594 阅读 · 0 评论 -
python实现自动化远程控制(2)--构造抽象类和接口
一、抽象类和接口的基础概念1. 抽象类抽象类满足一下几点要求: 1. 抽象类不能实例化 2. 抽象方法是必须被子类重写的方法 3. 如果类中包含抽象的方法,那么类就必须定义为抽象类,不论是否包含其他一般方法让抽象类拥有尽可能多的共同代码,尽可能少的数据。抽象类提供了一个继承的出发点。抽象类和原创 2012-06-17 23:10:56 · 876 阅读 · 0 评论