python继承

Tornado

 ̄綄美尐妖づ 提交于 2020-03-04 00:47:23
Tornado 是 FriendFeed 使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本。这个 Web 框架看起来有些像web.py 或者 Google 的 webapp,不过为了能有效利用非阻塞式服务器环境,这个 Web 框架还包含了一些相关的有用工具 和优化。 Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。得利于其 非阻塞的方式和对 epoll 的运用,Tornado 每秒可以处理数以千计的连接,这意味着对于实时 Web 服务来说,Tornado 是一个理想的 Web 框架。我们开发这个 Web 服务器的主要目的就是为了处理 FriendFeed 的实时功能 ——在 FriendFeed 的应用里每一个活动用户都会保持着一个服务器连接。(关于如何扩容 服务器,以处理数以千计的客户端的连接的问题,请参阅 C10K problem 。) pip install tornado 源码安装 https: / / pypi.python.org / packages / source / t / tornado / tornado - 4.3 .tar.gz 一、快速上手 第一步:执行脚本,监听xxxx端口 第二步:浏览器客户端访问 /index --> http://127.0.0

Python 类(Class)| 二

喜欢而已 提交于 2020-03-03 00:25:46
文章目录 类(Class)| 二 继承 多重继承 私有变量 类(Class)| 二 关于类的基础内容,包括类的定义,类对象,实例对象,方法对象,类和实例变量。在下面的这篇文章已经有基本的介绍: https://blog.csdn.net/weixin_45642918/article/details/104579523 今天这篇文章主要介绍类的继承以及私有变量。 继承 Python 支持类的继承。下面是派生类的定义: class DerivedClassName ( BaseClassName ) : < statement - 1 > . . . < statement - N > 在这里基类 BaseClassName 与派生类必须定义在同一个作用域中。也允许其他任意表达式代替基类名称所在的位置。例如,基类定义在另一个模块中时: class DerivedClassName ( modname . BaseClassName ) : 派生类跟基类执行过程是一样的。当构造类对象的时候,基类其实是会被先记下。当解析属性引用的时候:如果请求属性在派生类中没有找到时,将会从基类中进行搜索。若是继承的基类也是派生自其他类,则递归应用此规则。 派生类的实例化也没有太特殊的地方:DerivedClassName() 创建类的新实例。方法引用解析如下:搜索相应的类属性,如果有必要的话

Python类的创建过程

为君一笑 提交于 2020-03-02 20:53:52
类的创建过程 以下说的类指的类本身,例如以下代码: class Foo: def __init__(self): pass 则指的 Foo 的创建过程,而不是 Foo 的实例。 1. 解析 MRO 记录(Resolving MRO entries) 根据 MRO 规则解析继承关系 2. 确定元类(Determining the appropriate metaclass) 查找元类的过程遵循以下规则: 如果没有基类且没有指定 metaclass ,则使用 type() 如果指定了 metaclass 且它不是 type() 的实例,则直接使用 metaclass 如果指定了 type() 实例的 metaclass 或者有基类,(the most derived metaclass is used. ??) 3. 准备命名空间(Preparing the class namespace) 当元类确定后,类的命名空间也可以确定了。 如果元类有 __prepare__ 属性,则 namespace = metaclass.__prepare__(name, bases, **kwargs) ,否则命名空间会初始化为有序的空map(empty ordered mapping.) 4. 执行 Class 内语句(Executing the class body) 类内的语句通过 exec

Python类的创建过程

时光总嘲笑我的痴心妄想 提交于 2020-03-02 20:53:32
类的创建过程 以下说的类指的类本身,例如以下代码: class Foo: def __init__(self): pass 则指的 Foo 的创建过程,而不是 Foo 的实例。 1. 解析 MRO 记录(Resolving MRO entries) 根据 MRO 规则解析继承关系 2. 确定元类(Determining the appropriate metaclass) 查找元类的过程遵循以下规则: 如果没有基类且没有指定 metaclass ,则使用 type() 如果指定了 metaclass 且它不是 type() 的实例,则直接使用 metaclass 如果指定了 type() 实例的 metaclass 或者有基类,(the most derived metaclass is used. ??) 3. 准备命名空间(Preparing the class namespace) 当元类确定后,类的命名空间也可以确定了。 如果元类有 __prepare__ 属性,则 namespace = metaclass.__prepare__(name, bases, **kwargs) ,否则命名空间会初始化为有序的空map(empty ordered mapping.) 4. 执行 Class 内语句(Executing the class body) 类内的语句通过 exec

Python__面向对象

丶灬走出姿态 提交于 2020-03-02 13:05:44
1、面向对象的基本知识 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中) 对象,根据模板创建的实例(即:对象),实例用于调用被包装在类中的函数 面向对象三大特性:封装、继承和多态 2、类的成员 类的成员可以分为三大类:字段、方法和属性:         1、字段:普通字段、静态字段;         2、方法:普通方法、类方法、静态方法;         3、属性:普通属性 2.1、字段 字段包括:普通字段和静态字段,他们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同, 普通字段 属于 对象 静态字段 属于 类 class Province: # 静态字段 country ='中国' def __init__(self, name): # 普通字段 self.name = name # 直接访问普通字段 obj = Province('河北省') print(obj.name) # 直接访问静态字段 print(Province.country) print(obj.country) 静态字段在内存中只保存一份 普通字段在每个对象中都要保存一份 2.2、方法 方法包括:普通方法、静态方法和类方法,三种方法在 内存中都归属于类 ,区别在于调用方式不同。 普通方法

python学习笔记之使用threading模块实现多线程(转)

做~自己de王妃 提交于 2020-03-02 12:35:43
综述 Python这门解释性语言也有专门的线程模型,Python虚拟机使用GIL(Global Interpreter Lock,全局解释器锁)来互斥线程对共享资源的访问,但暂时无法利用多处理器的优势。 在Python中我们主要是通过thread和 threading这两个模块来实现的,其中Python的threading模块是对thread做了一些包装的,可以更加方便的被使用,所以我们使用 threading模块实现多线程编程。这篇文章我们主要来看看Python对多线程编程的支持。 在语言层面,Python对多线程提供了很好的支持,可以方便地支持创建线程、互斥锁、信号量、同步等特性。下面就是官网上介绍threading模块的基本资料及功能: 实现模块 thread:多线程的底层支持模块,一般不建议使用; threading:对thread进行了封装,将一些线程的操作对象化 threading模块 Thread 线程类,这是我们用的最多的一个类,你可以指定线程函数执行或者继承自它都可以实现子线程功能; Timer与Thread类似,但要等待一段时间后才开始运行; Lock 锁原语,这个我们可以对全局变量互斥时使用; RLock 可重入锁,使单线程可以再次获得已经获得的锁; Condition 条件变量,能让一个线程停下来,等待其他线程满足某个“条件”; Event 通用的条件变量

Python基础--异常

家住魔仙堡 提交于 2020-03-02 08:45:09
异常 当Python程序执行时遭遇到错误,解释器将无法继续往下执行,此时会出现错误提示,这便是异常。 例如打开一个不存在的文件 使用一个没有定义的变量 捕获异常 try-except   将可能出现问题的代码,放在try中,把处理异常的代码放在except中。 try: open("www.txt",'r') except FileNotFoundError: print("--------处理异常-------") print("您打开的文件不存在") 输出: --------处理异常------- 您打开的文件不存在   当我们需要捕获多个异常时,可以将要捕获异常的名字放在一个元组中。except之后使用Exception将捕获所有异常,有时我们希望存储捕获的异常可以使用as。 try: open("www.txt",'r') print(num) except (FileNotFoundError,NameError) as exceptionInfo: print("--------处理异常-------") print("您打开的文件不存在") print("异常的基本信息:",exceptionInfo) 输出: --------处理异常------- 您打开的文件不存在 异常的基本信息: [Errno 2] No such file or directory:

Python Coding Rule

喜你入骨 提交于 2020-03-02 05:45:57
介绍 这篇文档所给出的编码约定适用于在主要的Python发布版本中组成标准库的Python 代码.请查阅相关的关于在Python的C实现中C代码风格指南的描述. 这篇文档改编自Guido最初的《Python风格指南》一文. 并从《Barry's style guide》中添加了部分内容. 在有冲突的地方,Guide的风格规则应该是符合本PEP的意图 (译注:就是当有冲突时,应以Guido风格为准) 这篇PEP也许仍然尚未完成(实际上,它可能永远不会结束). 一致性的建议 愚蠢得使用一致性是无知的妖怪(A Foolish Consistency is the Hobgoblin of Little Minds) 呆板的坚持一致性是傻的没边了!-- Zoomq 在这篇风格指导中的一致性是重要的. 在一个项目内的一致性更重要. 在一个模块或函数内的一致性最重要. 但最重要的是:知道何时会不一致 -- 有时只是没有实施风格指导.当出现疑惑时, 运用你的最佳判断.看看别的例子,然后决定怎样看起来更好.并且要不耻下问! 打破一条既定规则的两个好理由: 当应用这个规则是将导致代码可读性下降,即便对某人来说,他已经习惯于按这条规则来阅读代码了. 为了和周围的代码保持一致而打破规则(也许是历史原因) -- 虽然这也是个清除其它混乱的好机会(真正的XP风格). 代码的布局 (Code lay-out)

Python面向对象——多态

邮差的信 提交于 2020-03-02 01:47:18
Python面向对象——多态 目标 多态 面向对象三大特性 1. 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中   定义类的准则 2. 继承 实现代码的重用 ,相同的代码不需要重复的编写   设计类的技巧   子类针对自己特有的需求,编写特定的代码 3. 多态 不同的 子类对象 调用相同的 父类方法 ,产生不同的执行效果    多态 可以 增加代码的灵活度   以 继承 和 重写父类方法 为前提   是调用方法的技巧, 不会影响到类的内部设计 多态案例演练 需求 1.在 Dog 类中封装方法 game   普通狗只是简单地玩耍 2.定义 XiaoTianDog 继承自 Dog,并且重写 game 方法   哮天犬需要在天上玩耍 3.定义 Person 类,并且封装一个 和狗玩 的方法   在方法内部,直接让 狗对象 调用 game 方法 class Dog ( object ) : def __init__ ( self , name ) : self . name = name def game ( self ) : print ( "%s 蹦蹦跳跳的玩耍..." % self . name ) class XiaoTianDog ( Dog ) : def game ( self ) : print ( "%s 飞到天上去玩耍..." % self .

Python入门学习八:面向对象编程(类)

こ雲淡風輕ζ 提交于 2020-03-01 23:21:54
文章目录 面向对象技术简介 摘要 1 创建和使用类 根据类创建实例 访问属性 调用方法 创建多个实例 2 继承 3 方法重写 基础重载方法 4 类的属性与方法 5 特殊符号说明 面向对象技术简介 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。 类变量: 类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。 数据成员 :类变量或者实例变量, 用于处理类及其实例对象的相关的数据。 方法重写 :如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。 局部变量 :定义在方法中的变量,只作用于当前实例的类。 实例变量 :在类的声明中,属性是用变量来表示的。这种变量就称为实例变量,是在类声明的内部但是在类的其他成员方法之外声明的。 继承 :即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系(例图,Dog是一个Animal)。 实例化 :创建一个类的实例,类的具体对象。 方法 :类中定义的函数。 对象 :通过类定义的数据结构实例