python的异常处理和模块发布安装
1.完整的异常处理
异常处理能够保证程序出错是也能够完整运行,不会应为bug而停止运行,这里介绍下获取异常的完整格式
try:
num = int(input("输入整数:"))
print(8/num) except ValueError:
print("请输入正确的整数!")
except ZeroDivisionError:
print("不能为0") except Exception as result:
print("未知异常 %s" % result) else:
print("成功运行没有报错") finally:
print("不管有什么问题,我都要运行!") print("结束!")
ValueError和ZeroDivisionError是两个系统存在的异常,表示值错误和除(或取模)零 错误
通过try对可能存在异常的部分进行检测,如果有异常,try中代码不运行,同时检测except中的异常类型进行匹配,其中Exception表示所有异常,没有异常则运行else中能代码
finally中的代码无论是否有异常都要运行
实际获取异常中不需要这么完整,可根据具体情况自行删减
2.异常的传递性
def fun():
num = int(input("输入整数:"))
return 10 / num try:
print(fun())
except Exception as result:
print(result)
异常是有传递性的,在函数方法中如果出现了异常,程序是不会直接报异常的,等到运行到主线程中还没有处理掉这个异常那么此时就会报异常,同时停止程序
按照原来的思路,需要在每个可能出现异常的地方进行获取异常,这样函数方法一多久或造成代码太过繁琐
那么根据异常的传递性可以在主线程中进行抛异常
3.自定义抛出异常
def fun():
num = input("请输入9个字符:") if len(num) == 9:
return num
ex = Exception("长度不够9!") raise ex try:
print(fun())
except Exception as result:
print(result)
有些时候需要自已定义异常,来满足开发需求,那么需要raise 来返回自定义的异常
4.本包内调用其他模块
import card_main
from t1 import function as mmm
import + 模块名,如果模块名太长,可以采用as进行别名
只是获取一个方法那么可以采用from + 模块名 + import + 函数名
5.不同包内调用模块

测试包测试导入pytest内的模块,方法同样是采用import.pytest.模块名
这里需要对pytest包内的__init__.py文件进行编写
from . import t1
from . import 静态方法
表示允许t1和静态方法模块被调用
6.__name__
def __main():
print(__name__) if __name__ == "__main__":
__main()
__name__是Python的内置属性,当前模块是主线程时为__main__,当前不是时为该模块的名称,
用这个方法可以成功的把模块中的实现给规避掉
7.发布模块
首先要新建一个项目,把需要共享的模块复制进来,在新建一个setup.py文件
from distutils.core import setup setup(name="pytest", # 发布的模块名
version="1.0", # 版本号
description="xxxx模块", # 简要描述
long_description="xxxxxxxxxxxxxxx", # 全部的描述
author="lsd", # 作者
url="www.baidu.com", # 主页地址 # 发布的模块名
py_modules=["pytest.t1",
"pytest.静态方法"]
)
之后,在该项目目录下打开cmd,或者Powershell
python setup.py build 表示编译
python setup.py sdist 表示发布
python setup.py install 表示安装

安装模块工具包还可以采用pip安装,这里暂时不介绍
python的异常处理和模块发布安装的更多相关文章
- day 5 模块发布安装
1.模块的位置 现在当前路径查找,再到系统路径/usr/lib/python3.5/查找,再到其他系统路径查找 2.模块发布 1)模块目录结构 Msg ├── __init__.py ├── recv ...
- Python学习:9.模块的安装以及调用模块
什么是模块 在Python中,模块其实也就是包含python代码的文件,我们为什么要使用模块?在我们以后写代码的时候,我们会发现有很多功能需要经常使用,那我们想要使用这些功能怎么办,要再把那些代码在敲 ...
- Python学习之==>第三方模块的安装、模块导入
一.模块&包 1.模块 模块实质上就是一个Python文件,它是用来组织代码的.意思就是把Python代码写在里面,文件名就是模块的名称.例如:random.py,random就是模块的名称. ...
- Python科学计算包模块的安装(ubuntu)
Python的科学计算包设计到C语言代码的编译,采用pip的方式安装会出现错误. 一种简单的方式是采用的集成包,具体的步骤参考:https://www.continuum.io/downloads#_ ...
- python远程登录Paramiko模块的安装
最近做云平台的项目,需要使用python来管理所有的主机,我选择了paramiko.它跨平台的,linux和window都可以使用,pssh只支持linux. 1:安装gcc和python-devel ...
- Python学习笔记2——模块的发布
1.为模块nester创建文件夹nester,其中包含:nester.py(模块文件): """这是"nester.py"模块,提供了一个名为prin ...
- 零基础学python之函数与模块(附详细的代码和安装发布文件过程)
代码重用——函数与模块 摘要:构建函数,创建模块,安装发布文件,安装pytest和PEP 8插件,确认PEP8兼容性以及纠错 重用代码是构建一个可维护系统的关键. 代码组是Python中对块的叫法. ...
- python: 模块发布
一.准备发布 1.为模块文件创建一个文件夹,并将模块文件复制到这个文件中(一般,文件夹的名字和模块的名字一样) 2.在文件夹中创建一个名为『setup.py』的文件,内容如下: #encoding:u ...
- Python模块发布
项目根目录添加setup.py模块: from distutils.core import setup setup( name="模块名字", version="1.0. ...
随机推荐
- git克隆和上传项目
软件环境: 1. VS2017 2. Git ver 2.17.0.1 3. gitee.com 目的: 已有的本地项目(新建)上传到码云,使本地可以和码云同步 尝试: 先在码云上建立项目,项目名称和 ...
- django笔记-model
python manage.py sqlmigrate polls 打印人类可读格式
- date时间设置
date +%F时间日期 date +%Y -%m-%d 年月日 date +%T 显示时间 HMS几点几分几秒 -%H 为小时 %w 周几 date -d “-1da ...
- Java - 关于子类父类的向上转型,向下转型
以下Animal为父类,Dog,Cat作为子类,分别继承Animal class Animal{ public void shout(){ System.out.println("叫了一声& ...
- js操作cookie的函数
///设置cookiefunction setCookie(NameOfCookie, value, expiredays) { var ExpireDate = new Date(); Expire ...
- Windows命令计算MD5与SHA1/256值
certutil -hashfile file MD5 certutil -hashfile file SHA1 certutil -hashfile file SHA256 示例如下:
- [PY3]——实现一个优先级队列
import heapq class PriorityQueue: def __init__(self): self._queue=[] self._index=0 def push(self,ite ...
- [转]Entity Framework Refresh context?
本文转自:http://stackoverflow.com/questions/20270599/entity-framework-refresh-context If you want to rel ...
- WPF 资源字典
使用好处:存储需要被本地话的内容(错误消息字符串等,实现软编码),减少重复的代码,重用样式,实现多个项目之间的共享资源;修改一个地方所有引用的地方都会被修改,方便统一风格; 使用方法,归纳起来主要有下 ...
- Python学习之环境搭建及模块引用
这是我学习Python过程积累的经验和踩过的坑,希望学习Python的新手们能尽量避免,以免不必要的时间浪费.今天也是我第一次接触Python. 基础语法看了两个晚上,所以如果没看的朋友们,抽时间先看 ...