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的异常处理和模块发布安装的更多相关文章

  1. day 5 模块发布安装

    1.模块的位置 现在当前路径查找,再到系统路径/usr/lib/python3.5/查找,再到其他系统路径查找 2.模块发布 1)模块目录结构 Msg ├── __init__.py ├── recv ...

  2. Python学习:9.模块的安装以及调用模块

    什么是模块 在Python中,模块其实也就是包含python代码的文件,我们为什么要使用模块?在我们以后写代码的时候,我们会发现有很多功能需要经常使用,那我们想要使用这些功能怎么办,要再把那些代码在敲 ...

  3. Python学习之==>第三方模块的安装、模块导入

    一.模块&包 1.模块 模块实质上就是一个Python文件,它是用来组织代码的.意思就是把Python代码写在里面,文件名就是模块的名称.例如:random.py,random就是模块的名称. ...

  4. Python科学计算包模块的安装(ubuntu)

    Python的科学计算包设计到C语言代码的编译,采用pip的方式安装会出现错误. 一种简单的方式是采用的集成包,具体的步骤参考:https://www.continuum.io/downloads#_ ...

  5. python远程登录Paramiko模块的安装

    最近做云平台的项目,需要使用python来管理所有的主机,我选择了paramiko.它跨平台的,linux和window都可以使用,pssh只支持linux. 1:安装gcc和python-devel ...

  6. Python学习笔记2——模块的发布

    1.为模块nester创建文件夹nester,其中包含:nester.py(模块文件): """这是"nester.py"模块,提供了一个名为prin ...

  7. 零基础学python之函数与模块(附详细的代码和安装发布文件过程)

    代码重用——函数与模块 摘要:构建函数,创建模块,安装发布文件,安装pytest和PEP 8插件,确认PEP8兼容性以及纠错 重用代码是构建一个可维护系统的关键. 代码组是Python中对块的叫法. ...

  8. python: 模块发布

    一.准备发布 1.为模块文件创建一个文件夹,并将模块文件复制到这个文件中(一般,文件夹的名字和模块的名字一样) 2.在文件夹中创建一个名为『setup.py』的文件,内容如下: #encoding:u ...

  9. Python模块发布

    项目根目录添加setup.py模块: from distutils.core import setup setup( name="模块名字", version="1.0. ...

随机推荐

  1. git克隆和上传项目

    软件环境: 1. VS2017 2. Git ver 2.17.0.1 3. gitee.com 目的: 已有的本地项目(新建)上传到码云,使本地可以和码云同步 尝试: 先在码云上建立项目,项目名称和 ...

  2. django笔记-model

    python manage.py sqlmigrate polls 打印人类可读格式

  3. date时间设置

    date +%F时间日期   date  +%Y -%m-%d   年月日 date  +%T   显示时间   HMS几点几分几秒 -%H  为小时 %w  周几 date   -d   “-1da ...

  4. Java - 关于子类父类的向上转型,向下转型

    以下Animal为父类,Dog,Cat作为子类,分别继承Animal class Animal{ public void shout(){ System.out.println("叫了一声& ...

  5. js操作cookie的函数

    ///设置cookiefunction setCookie(NameOfCookie, value, expiredays) { var ExpireDate = new Date(); Expire ...

  6. Windows命令计算MD5与SHA1/256值

    certutil -hashfile file MD5 certutil -hashfile file SHA1 certutil -hashfile file SHA256 示例如下:

  7. [PY3]——实现一个优先级队列

    import heapq class PriorityQueue: def __init__(self): self._queue=[] self._index=0 def push(self,ite ...

  8. [转]Entity Framework Refresh context?

    本文转自:http://stackoverflow.com/questions/20270599/entity-framework-refresh-context If you want to rel ...

  9. WPF 资源字典

    使用好处:存储需要被本地话的内容(错误消息字符串等,实现软编码),减少重复的代码,重用样式,实现多个项目之间的共享资源;修改一个地方所有引用的地方都会被修改,方便统一风格; 使用方法,归纳起来主要有下 ...

  10. Python学习之环境搭建及模块引用

    这是我学习Python过程积累的经验和踩过的坑,希望学习Python的新手们能尽量避免,以免不必要的时间浪费.今天也是我第一次接触Python. 基础语法看了两个晚上,所以如果没看的朋友们,抽时间先看 ...