一. 包

# 把解决一类问题的模块放在同一个文件夹里 -- 包

# 创建目录代码
# 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知识点总结——包、异常处理的更多相关文章

  1. python学习之老男孩python全栈第九期_day027知识点总结——反射、类的内置方法

    一. 反射 ''' # isinstance class A:pass class B(A):pass a = A() print(isinstance(a,A)) # 判断对象和类的关系 print ...

  2. python学习之老男孩python全栈第九期_day023知识点总结——类和对象命名空间、组合

    一. 类和对象命名空间类里 可以定义两种属性: 1. 静态属性 2. 动态属性 class Course: language = 'Chinese' def __init__(self, teache ...

  3. python学习之老男孩python全栈第九期_day019知识点总结——collections模块、时间模块、random模块、os模块、sys模块

    一. collections模块 在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:namedtuple.deque.Counte ...

  4. python学习之老男孩python全栈第九期_day017知识点总结——初识递归、算法

    一. 递归函数 如果一个函数在内部调用自身本身,这个函数就是递归函数. 最大递归深度默认是997 -- python从内存角度出发做得限制(而不是程序真的报错),最大深度可以修改 def func(n ...

  5. python学习之老男孩python全栈第九期_day010知识点总结

    def qqxing(l = []): # 可变数据类型 l.append(1) print(l)qqxing() # [1]qqxing([]) # [1]qqxing() # [1, 1]qqxi ...

  6. python学习之老男孩python全栈第九期_day007知识点总结

    基础数据类型汇总 1. str 2. int 3. list 4. bool 5. dict (1) fromkeys Python 字典 fromkeys() 方法用于创建一个新的字典,并以可迭代对 ...

  7. python学习之老男孩python全栈第九期_day001知识点总结

    1. Python2与Python3的区别: Python2:源码不标准,混乱,重复代码太多: Python3:统一标准,去除重复代码. 编码方式: python2的默认编码方式为ASCII码:pyt ...

  8. python学习之老男孩python全栈第九期_day014知识点总结

    # 迭代器和生成器# 迭代器 # 双下方法:很少直接调用的方法,一般情况下,是通过其他语法触发的# 可迭代的 --> 可迭代协议:含有__iter__的方法( '__iter__' in dir ...

  9. python学习之老男孩python全栈第九期_day016知识点总结

    '''数据类型:intbool... 数据结构:dict (python独有的)listtuple (pytho独有的)setstr''' # reverse() 反转l = [1,2,3,4,5]l ...

随机推荐

  1. Elasticsearch NEST – Examples for mapping between Query and C#

    Elasticsearch NEST – Examples for mapping between Query and C# During my training with Elasticsearch ...

  2. [转] Foobar2000 DSP音效外挂元件-Part4

    [转] Foobar2000 DSP音效外挂元件-Part4 在第1部分的文章里主要介绍了foobar2000预设的DSP音效调整,这些则示要介绍几个比较会用到的DSP外挂元件,在foobar2000 ...

  3. 架构师养成记--18.NIO

    有人叫new IO 我这里就叫Non-block IO 经典概念: Buffer(缓冲区):之前直接通过流,现在提供一个buffer存放数据. Channel:管道,包括ServerSocketCha ...

  4. Log中关于zVideoApp与zChatApp之间的消息传递可以搜索以下字符串

    [CSSBConfIPCAgent::OnMessageReceived]  (这是zVideoApp端的) 和 [CSSBPTIPCListener::OnMessageReceived]      ...

  5. 【Alpha】Phylab 展示博客

    目录 Phylab Alpha 展示博客 一.团队简介 二.项目目标 2.1 典型用户 2.2 功能描述 2.3 用户量 三.项目发布与展示 3.1 新功能 3.2 修复缺陷 3.3 问题与限制 3. ...

  6. 关于 maven 打包直接运行的 fat jar (uber jar) 时需要包含本地文件系统第三方 jar 文件的问题

    关于maven打包fat jar (uber jar) 时需要包含本地文件系统第三方jar文件的问题,今天折腾了一整天.最后还是用了spring boot来做.下面是几篇关于打包的有参考价值的文章,以 ...

  7. MySQL中show语法

    1. show tables或show tables from database_name; -- 显示当前数据库中所有表的名称. 2. show databases; -- 显示mysql中所有数据 ...

  8. maven 根据profile,resources,filters来区分部署环境

    项目过程中,在不同的阶段,分别需要部署开发环境,测试环境,线上环境.如果都用一套配置文件,很容易弄乱,所以维持多套配置文件很有必要. maven提供了一组属性以供开发人员灵活搭配,可以根据环境来打包, ...

  9. JS DATE对象详解

    1.建立时间对象:可获取年,月,日,星期,时,分,秒 var d = new Date(); console.log(d.getFullYear()+'年'+d.getMonth()+'月'+d.ge ...

  10. JavaScript设计模式-6.封装

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...