python学习之老男孩python全栈第九期_day021知识点总结——包、异常处理
一. 包
# 把解决一类问题的模块放在同一个文件夹里 -- 包 # 创建目录代码
# import os
# os.makedirs('glance/api')
# os.makedirs('glance/cmd')
# os.makedirs('glance/db')
# l = []
# l.append(open('glance/__init__.py','w'))
# l.append(open('glance/api/__init__.py','w'))
# l.append(open('glance/api/policy.py','w'))
# l.append(open('glance/api/versions.py','w'))
# l.append(open('glance/cmd/__init__.py','w'))
# l.append(open('glance/cmd/manage.py','w'))
# l.append(open('glance/db/models.py','w'))
# map(lambda f:f.close() ,l) # 凡是在导入时带点的,点的左边都必须是一个包
# import glance.api.policy
# glance.api.policy.get() # from后import导入的模块,必须是明确的一个不能带点,否则会有语法错误
# from glance.api import policy
# policy.get() # from glance.api.policy import get
# get() # import glance
# glance.api.policy.get() # 报错,导入glance只会执行glance下的__init__.py文件,从__init__.py里导入
# glance.db.models.register_models('skr') # 绝对路径:不能挪动,但是直观
# 不管在包内部还是外部,导入了就能用 # 相对路径:可以随意移动包,只要能找到包的位置,就可以使用包里的模块
# 包里的模块如果想使用其他模块的内容只能使用相对路径,使用了相对路径就不能再宝内直接执行了
# __init__.py里面 from .
import glance
glance.api.policy.get()
二. 异常处理
# 1/0 # division by zero
# name # name 'name' is not defined
# 2 + '3' # unsupported operand type(s) for +: 'int' and 'str'
# [][3] # list index out of range
# {}['k'] # KeyError: 'k'
# int('a') # invalid literal for int() with base 10: 'a' # 程序一旦发生错误,就从错误的位置停下来了,不在继续执行后面的内容 # ret = int(input('number >>>')) # 如果输入的不是数字,就会报错
# print(ret * '+') # 使用try和except就能处理异常
# try是我们需要处理的代码
# except 后面跟一个错误类型,当代码发生错误且错误类型符合时,就会执行except后面的内容
# except 支持多分支
# Exception:可以处理所有的错误类型
# 但这样不知道哪里错了,怎么错的
# 有了万能的处理机制,仍然需要把能预测的问题单独处理
# 单独处理的所有内容都应该写在万能处理异常之前
# finally:不管代码是否异常,都会执行
# finally和return相遇的时候,依然会执行
# finally一般都是在函数里面做异常处理用,不管是否异常,去做一些收尾工作 # 处理
try:
ret = int(input('number >>>'))
print(ret * '+')
except ValueError:
print('您输入的内容有误,请输入一个数字')
else: # 若程序无异常,则继续执行else中的代码
print('---------------')
finally: # 不管代码是否异常,都会执行
print('////////////////') # except 可以有多个吗?
# 有没有一个能处理所有错误的类型? # try:
# 1/0
# name
# 2 + '3'
# [][3]
# {}['k']
# int('a')
# except Exception as error: # 处理万能异常
# print('你错了',arror)
python学习之老男孩python全栈第九期_day021知识点总结——包、异常处理的更多相关文章
- python学习之老男孩python全栈第九期_day027知识点总结——反射、类的内置方法
一. 反射 ''' # isinstance class A:pass class B(A):pass a = A() print(isinstance(a,A)) # 判断对象和类的关系 print ...
- python学习之老男孩python全栈第九期_day023知识点总结——类和对象命名空间、组合
一. 类和对象命名空间类里 可以定义两种属性: 1. 静态属性 2. 动态属性 class Course: language = 'Chinese' def __init__(self, teache ...
- python学习之老男孩python全栈第九期_day019知识点总结——collections模块、时间模块、random模块、os模块、sys模块
一. collections模块 在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:namedtuple.deque.Counte ...
- python学习之老男孩python全栈第九期_day017知识点总结——初识递归、算法
一. 递归函数 如果一个函数在内部调用自身本身,这个函数就是递归函数. 最大递归深度默认是997 -- python从内存角度出发做得限制(而不是程序真的报错),最大深度可以修改 def func(n ...
- python学习之老男孩python全栈第九期_day010知识点总结
def qqxing(l = []): # 可变数据类型 l.append(1) print(l)qqxing() # [1]qqxing([]) # [1]qqxing() # [1, 1]qqxi ...
- python学习之老男孩python全栈第九期_day007知识点总结
基础数据类型汇总 1. str 2. int 3. list 4. bool 5. dict (1) fromkeys Python 字典 fromkeys() 方法用于创建一个新的字典,并以可迭代对 ...
- python学习之老男孩python全栈第九期_day001知识点总结
1. Python2与Python3的区别: Python2:源码不标准,混乱,重复代码太多: Python3:统一标准,去除重复代码. 编码方式: python2的默认编码方式为ASCII码:pyt ...
- python学习之老男孩python全栈第九期_day014知识点总结
# 迭代器和生成器# 迭代器 # 双下方法:很少直接调用的方法,一般情况下,是通过其他语法触发的# 可迭代的 --> 可迭代协议:含有__iter__的方法( '__iter__' in dir ...
- python学习之老男孩python全栈第九期_day016知识点总结
'''数据类型:intbool... 数据结构:dict (python独有的)listtuple (pytho独有的)setstr''' # reverse() 反转l = [1,2,3,4,5]l ...
随机推荐
- 基于Dubbo的Hessian协议实现远程调用
Dubbo基于Hessian实现了自己Hessian协议,可以直接通过配置的Dubbo内置的其他协议,在服务消费方进行远程调用,也就是说,服务调用方需要使用Java语言来基于Dubbo调用提供方服务, ...
- 快速搭建微信小程序开发环境
1.工具软件: 注:本文介绍的工具软件已分享到百度云盘,直接下载并按照本文介绍安装即可. 开发工具 v0.7 百度云链接: https://pan.baidu.com/s/1jIQ7i8A密码: aq ...
- java----session
什么是session? 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),也就是说他是保存在服务端的.注意:一个浏览器独占一个session对象(默认情况下).因此,在 ...
- sourceTree"重置提交"和"提交回滚"的区别
相信用过sourceTree的伙伴们都认识这两,但是不一定用过这两个功能,甚至是不能很好的把握它两的区别,根据自己最近亲身测试,总算是能小小的总结一下了 首先这儿假如,历史版本已经出现了1.2.3.4 ...
- MySQL , MHA , Haproxy 配置
1. 基本架构 2. 读端口影射 3. 写端口影射 进行一个Health Check MHA Manager对Master节点MySQL 进行存活监控 读FailOver 1 读FailOver 2 ...
- POJ – 1200 Crazy Search
http://poj.org/problem?id=1200 #include<iostream> #include<cstring> using namespace std; ...
- start and end call use itelephony and how to pick up a call
Bluetooth Headset service: 但想想而已. 没有蓝牙耳机如何调用它来接听电话.想想有点搞笑. 网上扒的通过添加一个ITelephony.aidl来反射,注意aidl的写法,如果 ...
- symfony4 404页面未找到
symfony4 404页面未找到 安装好symfony4后,发现除了首页能正常显示,其他页面如/_profiler_/等其他创建的router访问都显示The requested URL /xxx ...
- postgresql客户端连接错误的解决方法【转】
今天在重新设置postgresql服务器以后却发现启动不了服务器.错误如下:psql: could not connect to server: No such file or directory ...
- (转)DB2高可用性灾难恢复
DB2 HADR概述 原文:https://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0508luojunkai/