python继承

python笔记之Cmd模块

与世无争的帅哥 提交于 2019-12-30 03:43:51
python笔记之Cmd模块 Cmd类型提供了一个创建命令行解析器的框架,默认情况下,它使用readline来进行交互式操作、命令行编辑和命令完成. 使用cmd创建的命令行解释器循环读取输入的所有行并且解析它们,然后发送命令给一个合适的命令处理器。输入行为解析成两个部分:命令和参数。如果用户输入cmd param,它解释成命令cmd和参数param,然后使用param作为参数调用do_cmd方法。如果do_cmd命令处理器返回真,那么程序会干净的退出,否则会继续等待下一个命令的输入。 简单的来说,可以继承Cmd来创建命令行界面,然后对所有想处理的命令command执行do_command方法。这个方法会接受命令行的其余部分作为自己的唯一参数。比如,如果在命令行中输入: say hello do_say方法会连同作为唯一参数的字符串"hello"一起调用。 Cmd一些常用的方法 cmdloop():类似与Tkinter的mainloop,运行Cmd解析器; onecmd(str):读取输入,并进行处理,通常不需要重载该函数,而是使用更加具体的do_command来执行特定的命名; emptyline():当输入空行时调用该 default(line):当无法识别输入的command时调用该方法; completedefault(text,line,begidx,endidx)

Python基础(六)

二次信任 提交于 2019-12-30 03:43:38
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1 函数 1.1 函数的分类 函数可以分成三种: 内置函数(BIF):解释器中内置的函数,可以直接通过函数名调用,如len(). 模块函数:定义在模块中的函数,通过模块名调用,如math.sin(). 用户自定义函数. 1.2 函数与方法 函数是指在类外定义的,可以独立调用的一组语句集合,另外通过类去调用的语句,也叫函数而不是方法. 方法是指在类内定义的,需要通过对象与点调用的一组语句集合,方法中的self是隐式传递的. 1.3 函数也是对象 在python中,函数也是对象,比如: def xx(): print(4) print(type(xx)) 1.4 注意事项 函数的参数带一个 * 时,表示元组,带两个 * 时,表示字典.函数的返回值可以为迭代器,元组等,如果没有return,默认返回None. 另外就是docstring,docstring其实就是一堆注释,说明函数的作用,建议使用三引号. 2 内置函数 内置函数就是内置在python解释器中的函数,可以直接通过函数名调用,不需要import.查看内置函数可以使用内置函数dir(): dir(__builtins__) 2.1 查看帮助 可以使用help查看函数的帮助. 一般给出简单的帮助信息,详细信息可以去官网查询. 2.2 数学函数 2.2.1

python之cmd模块

痴心易碎 提交于 2019-12-30 03:43:24
md模块可以用来做交互式shell cmd模块是python中包含的一个公共模块,用于交互式shell和其他命令解释器等的基类,我们可以基于cmd模块自定义我们的子类,实现我们自己的交互式shell 它的执行流程也很简单,使用命令行解释器循环读取输入的所有行并解析他们,然后把输入行交给命令处理器来处理。 命令行解释器接收并解析输入行,这里先需要知道输入行包含两个部分,命令和参数,通过继承和子类方法重载父类方法的特征,命令行处理器找到合适处理该命令的子类方法 比如我们输入的是hello baby,那么我们就重写do_hello的函数,若处理方法返回TRUE,则直接退出循环 简单代码示例 #!/usr/bin/env python2.6 # coding: utf-8 import sys import os from cmd import Cmd class Cli(Cmd): def __init__(self): Cmd.__init__(self) def do_hello(self, line): print "hello: ",line if __name__ == '__main__': cli = Cli() cli.cmdloop()    cmd的主要方法和属性 方法: cmdloop():类似与Tkinter的mainloop,运行Cmd解析器 onecmd

简单认识python cmd模块

旧时模样 提交于 2019-12-30 03:43:09
0X00 前言 在早前用别人的工具时,发现有些大佬会用到交互式shell,那时候就挺好奇的,但是一直都没有看一下怎么做到的。 今天在翻p牛的博客的时候,看到他早之前写的一个工具就有用到交互式shell,看了看源码,发现是用到了一个叫做cmd的模块。 就想写篇博文记录一下,也好补充一下自己python标签的文章~ 0X01 简介 cmd模块是python中包含的一个公共模块,用于交互式shell和其它命令解释器等的基类。我们可以基于cmd模块自定义我们的子类,实现我们自己的交互式shell。 它的执行流程也挺简单的,使用命令行解释器循环读取输入的所有行并解析它们,然后把输入行交给命令处理器来处理。命令行处理器接收并解析输入行,这里先需要知道输入行包括两个部分:命令和参数。通过继承和子类方法重载父类方法的特性,命令行处理器找到适合处理该命令的子类方法。 比如我们输入的是hello baby,那么我们就重写名为do_hello的函数。倘若处理方法返回True,则直接退出循环。 简单的代码示例: 1 from cmd import Cmd 2 import os 3 import sys 4 5 class Cli(Cmd): 6 def __init(self): 7 Cmd.__init__(self) 8 9 def do_hello(self,line): 10 print

Python中多重继承

梦想的初衷 提交于 2019-12-29 23:23:13
多重继承和方法解析顺序 python支持多继承的,下面看一个多继承的例子: class A : def ping ( self ) : print ( 'ping:' , self ) class B ( A ) : def pong ( self ) : print ( 'pong:' , self ) class C ( A ) : def pong ( self ) : print ( 'PONG' , self ) class D ( B , C ) : def ping ( self ) : super ( ) . ping ( ) print ( 'post-ping:' , self ) def pingpong ( self ) : self . ping ( ) super ( ) . ping ( ) self . pong ( ) super ( ) . pong ( ) C . pong ( self ) 上面的代码用下面的流程图记录为:其中左边为菱形UML图形,右边为上面代码的解析图; 在C上调用pong有两种方式: d = D ( ) d . pong ( ) >> > pong : < __main__ . D object at 0x0000019F560A11C8 > C . pong ( d ) #超类中的方法都可以直接调用

五.面向对象

a 夏天 提交于 2019-12-29 20:22:41
目录 1 面向对象 2 面向对象三要素 3 Python面向对象 4 装饰一个类 5 对象的销毁 6 方法的重载 7 类的继承 8 多态 1 面向对象 什么是面向对象? 一种认识世界,分析世界的方法论。将万事万物抽象为类。 类class 类是抽象的概念,是万事万物的抽象,是一类事物的共同特征的集合。 对象instance、object 对象是类的具体,是一个实体 对于我们每个人这个个体,都是抽象概念人类不同的实体。 *属性,它是对象状态的抽象 *操作,它是对象行为的抽象 2 面向对象三要素 1.封装 组装:将数据和操作组装到一起。 隐藏数据:对外只暴露一些接口,通过接口访问对象。 2.继承 多复用,继承来的就不用自己写了 多继承少修改,使用继承来修改,来体现个性 3.多态 面向对象编程最灵活的地方,动态绑定 3 Python面向对象 Python的类 class ClassName : 语句块 # 1.必须使用class关键字 # 2.类名必须是用大驼峰命名 # 3.类定义完成后,就产生了一个类对象,绑定到了ClassName上 class MyClass : """A example class""" x = 'abc' #类属性 def foo ( self ) : #类属性,也是方法 print ( self . x ) return 'My Class' print (

Python类的继承

女生的网名这么多〃 提交于 2019-12-29 08:05:32
基本概念 面向对象三要素之一:继承inheritance。人类和猫类都是继承自动物类。 个体继承自父母,继承了父母的一部分特征,但也可以有自己的个性。在面向对象的世界中,从父类继承,就可以直接拥有父类的属性和方法,这样可以减少代码,多复用。子类可以定义自己的属性和方法。 先看一个不用继承的例子: class Animal: def shout(self): print("Animal shouts") a = Animal() a.shout() class Cat: def shout(self): print("cat shouts") c = Cat() c.shout() 结果为: Animal shouts cat shouts 上面的两个类虽然有关系,但是定义时并没有建立这种关系,而是各自完成定义。 动物类和猫类都有吃,但是它们的吃有区别,所以分别定义。 class Animal: def __init__(self,name): self._name = name def shout(self):#一个通用的吃方法 print("{} shouts".format(self.__class__.__name__)) @property def name(self): return self._name a = Animal("monster") a.shout()

Python 面向对象介绍

断了今生、忘了曾经 提交于 2019-12-29 03:48:38
/*--> */ /*--> */ Python 面向对象介绍 一、面向对象编程解释 编程范式    编程是程序员用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程。 一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路通罗马,实现一个任务的方式有很多种不同的方式。对这些不同的编程方式的特点进行归纳总结得出来的编程方式类别,即为编程范式。   不同的编程范式本质上代表对各种类型的任务采取的不同的解决问题的思路,大多数语言只支持一种编程范式。当然也有些语言可以同时支持多种编程范式,    两种最重要的编程范式分别:面向过程编程和面向对象编程 面向过程   就是程序从上到下一步步执行,一步步从上到下。从头到尾的解决问题,基本设计思路就是程序一开始是要着手解决一个大的问题,然后把一个大问题分解成很多个小问题或子过程,这些子过程再执行的过程再继续分解直到小问题足够简单到可以在一个小步骤范围内解决。(如: 数据库备份.分三步. 连接数据库、备份数据库、测试备份文件可用性。) 函数式编程   将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象编程   OOP编程是利用"类"【相当于面向对象中的模版】和"对象"【实际中的角色】来各种模型中创建实现对真实世界的描述。使用面向对象编程的原因一方面是因为它可以使程序的维护和扩展变得更简单

Python 面向对象介绍

南楼画角 提交于 2019-12-29 03:47:20
面向对象,面向过程 面向对象引子 人狗大战,人与狗都有不同的特点,如果要写出这两个不同角色 需要写出两个角色,可以使用嵌套函数,函数内在写入函数,然后通 过字典,将里层函数reture出来,在调用。 但是,如果有两个相同对象,并有相同不同功能则无法进行复杂 的角色创建,如用上述功能实现会有很多重复代码。 注:面向对象编程就是解决更复杂的关系描述。 面向过程 VS 面向对象 编程范式 编程是 程序 员 用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程 , 一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路通罗马,实现一个任务的方式有很多种不同的方式, 对这些不同的编程方式的特点进行归纳总结得出来的编程方式类别,即为编程范式。 不同的编程范式本质上代表对各种类型的任务采取的不同的解决问题的思路, 大多数语言只支持一种编程范式,当然也有些语言可以同时支持多种编程范式。 两种最重要的编程范式分别是面向过程编程和面向对象编程。 面向过程编程 (Procedural Programming) Procedural programming uses a list of instructions to tell the computer what to do step-by-step. 面向过程编程依赖 - 你猜到了- procedures

六.Python面向对象

安稳与你 提交于 2019-12-28 20:13:38
目录 语言分类 面向对象 面向对象三要素 Python的面向对象 01 语言分类 面向机器: 抽象成机器指令,机器容易理解。 代表:汇编语言 面向过程: 做一件事情,排除个步骤,第一步干什么,第二步干什么,如果出现情况A,做什么处理,如果出现了情况B,做什么处理。 问题规模小,可以步骤化,按部就班处理 代表 C语言 面向对象OPP 相比较函数,面向对象是更大的封装,根据 职责在一个对象中封装 多个方法 在完成某一个需求前,首先确定 职责 —— 要做的事情(方法) 根据 职责 确定不同的 对象,在 对象 内部封装不同的 方法(多个) 最后完成的代码,就是顺序地让 不同的对象调用 不同的方法 注重 对象和职责,不同的对象承担不同的职责 更加适合应对复杂的需求变化,是专门应对复杂项目开发,提供的固定套路 需要在面向过程基础上,再学习一些面向对象的语法 代表 C++、java、Python等 02 面向对象 什么是面向对象? 一种认识世界,分析世界的方法论。将万事万物抽象为类。 类class 类是抽象的概念,是万事万物的抽象,是一类事物的共同特征的集合。 对象instance、object 对象是类的具体,是一个实体 对于我们每个人这个个体,都是抽象概念人类不同的实体。 *属性,它是对象状态的抽象 *操作,它是对象行为的抽象 03 面向对象三要素 1.封装 组装:将数据和操作组装到一起。