python继承

Python中异常处理

丶灬走出姿态 提交于 2020-01-26 02:14:00
1、异常 Exception 错误Error 逻辑错误:算法写错了,加法写成了减法。 笔误:变量名写错了,语法错误。 错误可以避免的 异常Exception 本身就是意外情况。一些意外,导致程序无法正常的执行下去。 是不可避免的。 错误和异常 在高级编程语言中,一般都有错误和异常的概念,异常是可以捕获的并被处理的,但是错误是不能捕获的。 with open('test') as f: pass 错误信息: Traceback (most recent call last): File "C:/Users/WCL/PycharmProjects/untitled1/package/test1/异常处理.py", line 1, in <module> with open('test') as f: FileNotFoundError: [Errno 2] No such file or directory: 'test' def 0A(): pass File "C:/Users/WCL/PycharmProjects/untitled1/package/test1/参数检查.py", line 142 class typeassert ^ SyntaxError: invalid syntax 一个健壮的程序,尽可能的避免错误。 尽可能的捕获,处理各种异常。 2、产生异常 产生

python-异常

杀马特。学长 韩版系。学妹 提交于 2020-01-26 02:12:19
异常 简述 异常可以看作是打破程序正常执行流程的错误事件。 异常的使用场景 (1)网络请求(超时,连接错误等) (2)资源访问(权限问题,资源不存在) (3)代码逻辑(索引越界,KeyError) 异常处理 try: #可能会抛出异常的代码 except (Exception1, Exception2) as e: #可以捕获多个异常并处理 #处理异常的代码 else: #异常没有发生时代码 finally: #无论异常有没有发生都会执行的代码 #一般处理资源的关闭和释放 自定义异常 继承Exception实现自定义异常 给异常加一些附加信息 处理一些业务相关的特定异常(raise MyException) class MyExcepiton(Exception): """docstring for MyExcepiton""" pass try: raise MyExcepiton('my exception') except MyExcepiton as e: print(e) 注意:如果捕获一个父类的异常,那么它的所有子类异常均在被捕获的范围内 来源: https://www.cnblogs.com/marton/p/10994067.html

Python 3 学习笔记之——错误和异常

人走茶凉 提交于 2020-01-26 02:09:10
1. 语法错误 Python 的语法错误被称为解析错,语法分析器会指出出错的代码行,并且在最先找到的错误的位置标记一个小小的箭头。 >>> while True File "<stdin>", line 1 while True ^ SyntaxError: invalid syntax 2. 异常 即使 Python 程序的语法是正确的,但是在运行的时候,也有可能发生错误,运行期监测到的错误称为异常。 >>> print(name) Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'name' is not defined >>> a = [1, 2, 3] >>> b = a(0) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'list' object is not callable >>> 10 / 0 Traceback (most recent call last): File "<stdin>", line 1, in <module> ZeroDivisionError: division by zero 3. 异常处理

python和C#的区别

偶尔善良 提交于 2020-01-25 23:44:49
首先, Python 与JAVA一样,是一门开源的、跨多平台的语言。而C#本身不是开源的,且只能运行在Windows平台上。 1. 编译性 Python是一门解释性脚本语言,源代码不需要编译可以直接运行,运行时Python字节码解释器解释源代码并执行相关命令。Python的源代码文件.py可以直接运行,如果装了Python在本地的话。而C#则需要编译为IL,运行时由CLR托管运行。 2. 数据类型 Python的数据类型比较少,基本数字类型只有5种,序列类型三种:字符串,元组,列表。映射类型一种:字典。C#的内置数据类型则有很多。Python没有double类型。Python没有char或byte类型来保存单一字符或8位整型。Python有个内置的复数数字类型,C#没有。 3. 面向对象 Python中代码(字段,函数)可以不放在类中,而是直接放在.py文件下,C#不允许这么做。 4. 代码块 Python缩进,C#是大括号。 5. Switch Python没有 6. for/foreach Python没有foreach,Python的for循环类似于C#的foreach。要实现C#的for循环功能,Python要借助于range()函数。 7. 列表解析/切片操作 C#没有这个功能。 8. 自增/自减运算 Python不支持 9. 变量声明 Python无需显式的声明变量

python进程与线程实例

落花浮王杯 提交于 2020-01-25 20:00:45
运行程序得到的一次运行结果 from random import randint from time import time , sleep def download_task ( filename ) : print ( '开始下载%s...' % filename ) time_to_download = randint ( 5 , 10 ) sleep ( time_to_download ) print ( '%s下载完成! 耗费了%d秒' % ( filename , time_to_download ) ) def main ( ) : start = time ( ) download_task ( 'Python从入门到住院.pdf' ) download_task ( 'Peking Hot.avi' ) end = time ( ) print ( '总共耗费了%.2f秒.' % ( end - start ) ) if __name__ == '__main__' : main ( ) 开始下载Python从入门到住院.pdf... Python从入门到住院.pdf下载完成! 耗费了9秒 开始下载Peking Hot.avi... Peking Hot.avi下载完成! 耗费了6秒 总共耗费了15.01秒. 多进程的方式将两个下载任务放到不同的进程中 from

Python命名空间包

让人想犯罪 __ 提交于 2020-01-25 08:34:44
命名空间包是对相关的包或模块进行分组的一种方法,通常是一个被忽略的功能,它对于在较大的项目中构建打包生态系统非常有用。 如果你的应用组件的开发、打包和版本化都是独立的,但仍然希望从同一个命名空间访问它们,那么命名空间包特别有用,它有利于明确每个包所属的组织或项目。 例如,假设有一个 Acme 公司,该公司中使用共同的 acme 命名空间,同时创建通用的 acme 命名空间包作为该组织的其他包的容器。如果 Acme 公司中的某人想要向这个命名空间贡献一个与 SQL 相关的库,那么他需要在 acme 中注册自己新的 acme.sql 包,整个文件结构如下所示: $tree acme/ acme/ ├───acme │ ├───__init__.py │ └───sql │ └──__init__.py └───setup.py 2 directories, 3 files 在此基础上,如果想添加一个新的子包,例如添加 templating,则需要将其包含在 acme 的源代码树中,如下所示: $tree acme/ acme/ ├───acme │ ├───__init__.py │ ├───sql │ │ └──__init__.py │ └───templating │ └──__init__.py └───setup.py 3 directories, 4 files

用Python实现数据结构之树

时光怂恿深爱的人放手 提交于 2020-01-25 06:11:58
树 树是由根结点和若干颗子树构成的。树是由一个集合以及在该集合上定义的一种关系构成的。集合中的元素称为树的结点,所定义的关系称为父子关系。父子关系在树的结点之间建立了一个层次结构。在这种层次结构中有一个结点具有特殊的地位,这个结点称为该树的根结点,或称为树根。 相关概念 根节点:树中最顶部的元素 父节点:处了根节点都有父节点,每个节点最多只有一个父节点 孩子节点:一个父节点具有0个或多个孩子节点 兄弟节点:同一个父节点的孩子节点之间是兄弟关系 外部节点:一个没有孩子的节点称为外部节点,也叫叶子结点 内部节点:有一个或多个孩子节点的节点叫做内部节点 树的边:指一对节点(u,v),其中u是v的父节点或者v是u的父节点 树的路径:一系列连续的边组成了一条路径 节点的深度:节点的深度就是该节点的祖先的个数,不包括该节点本身,如果根节点的层数为1,则深度即为该节点的层数-1 节点的高度:如果p是树中的叶子节点,那么它的高度为0.否则p的高度是它的孩子节点中的最大高度+1 有序树:每个孩子之间有一定的顺序,例如: 一个树的抽象基类 class Tree(): """ 树的抽象基类 """ # 叫做位置的内嵌类,用于封装节点 class Position(): def element(self): raise NotImplementedError('must be implemented by

在Python中使用MongoDB

♀尐吖头ヾ 提交于 2020-01-25 05:05:46
目录 先决条件 PyMongo实现 创建操作 读取操作 更新操作 删除操作 MongoEngine实现 创建操作 读取操作 更新操作 删除操作 结论 在我们的 《 MongoDB 定义 指南》中 ,我们涵盖了很多基础。在这里,您可以获得有关 NoSQL 数据库,它们是什么,如何使用它们以及使用它们的 好处 的更多信息。除此之外,您还可以找到有关不同 类型 的 NoSQL 数据库及其最受欢迎的 代表的 更多信息。这些类型之一是所谓的 Document NoSQL 数据库,它们最受欢迎的代表是 MongoDB 。 因此,我们继续介绍了该数据库的一些 基础 。在那里,您可以学习如何安装 MongoDB ,创建数据库、集合、文档以及如何使用这些实体。另外,还有许多有关 MongoDB 部署、 分片、副本集以及如何操作它们的信息。您也可以找到如何在 .NET 环境、 JavaScript MEAN 框架和 无服务器 环境中 使用 此数据库。因此,我们希望以此为基础,并写一篇文章,介绍如何在 Python 中 使用 MongoDB 。 在本文中,我们实现了一个 存储库 ,您可以使用该 存储库 来处理 Users 组中的 数据。我们在 .NET 的《 MongoDB 定义指南》中 做了类似的事情。实际上,我们提出了 两种 实现 方法 ,即,使用两个 Python 模块—— PyMongo 和

Python 入门 16 —— 类的多态、 MRO列表、 super()函数

守給你的承諾、 提交于 2020-01-25 04:59:28
一、多态 当多个子类继承同一个父类时,在各个子类中都可以重载父类的成员。通过各自的重载,父类的某一成员在不同的子类中就会有不同的“表现”,这种现象就叫“多态”。例如: class b01 : x = 0 class cls01 ( b01 ) : x = 11 class cls02 ( b01 ) : x = 22 class cls03 ( b01 ) : x = 33 class cls04 ( b01 ) : x = 44 class cls05 ( b01 ) : x = 55 print ( cls01 . x , cls02 . x , cls03 . x , cls04 . x , cls05 . x ) # 11 22 33 44 55 以上例子中基类中定义的变量 x,当用不同的子类中,其值各不相同,这就是典型的“多态”现象。不过,以上例子展示的是最简单的多态形式。在实际的子类重载父类成员的过程上,通常都会引用父类的成员,即,父类已有的功能不再重复实现。 在派生类中引用基类成员可以有两种方法:一是用“基类名.成员名”的方法;二是用“super().成员名”的方法。用“基类名.成员名”的方法虽然简单明了,但潜在一个问题:当基类名发生改变时,子类就必须同时进行修改————逐一地在引用基类成员的地方将旧的基类名修改为新的基类名。而用“super().成员名

Python笔记:爬虫框架Scrapy之ItemPipeline的使用

僤鯓⒐⒋嵵緔 提交于 2020-01-25 04:45:30
ItemPipeline的介绍 当Item在Spider中被收集之后,它将会被传递到Item Pipeline,一些组件会按照一定的顺序执行对Item的处理。 每个item pipeline组件(有时称之为“Item Pipeline”)是实现了简单方法的Python类。他们接收到Item并通过它执行一些行为,同时也决定此Item是否继续通过pipeline,或是被丢弃而不再进行处理。 以下是item pipeline的一些典型应用: 清理HTML数据 验证爬取的数据(检查item包含某些字段) 查重(并丢弃) 将爬取结果保存到数据库中 编写自己的item pipeline 编写你自己的item pipeline很简单,每个item pipiline组件是一个独立的Python类,同时必须实现以下方法: 1 ) process_item(item, spider) 每个item pipeline组件都需要调用该方法,这个方法必须返回一个 Item (或任何继承类)对象, 或是抛出 DropItem 异常,被丢弃的item将不会被之后的pipeline组件所处理。 参数: item (Item 对象) – 被爬取的item spider (Spider 对象) – 爬取该item的spider 2 ) open_spider(spider) 当spider被开启时,这个方法被调用。