py12----test/try....except/raise..........

14 篇文章 0 订阅

高级语言都自带处理异常的函数:try....except.....finally

出现异常直接中断执行,直接到except捕获匹配错误类型,常见的错误类型可见     常见的错误类型和继承关系

def foo(s):
    return 10 / int(s)

def bar(s):
    return foo(s) * 2

def main():
    try:
        bar('0')
    except Exception as e:
        print('Error:', e)
    finally:
        print('finally...')

logging模块可以记录错误的信息,

except Exception as e;
    logging.exception(e)

抛出错误:自己定义一个错误的class,选择好一个实例,用raise抛出一个错误的实例

eval() 函数用来执行一个字符串表达式,并返回表达式的值。

a = "[[1,2], [3,4], [5,6], [7,8], [9,0]]"

b = eval(a)

b
Out[3]: [[1, 2], [3, 4], [5, 6], [7, 8], [9, 0]]

调试:断言机制,pdb,IDE.......

super调用下一个父类并且返回当前父类的实例(两个个参数1:召唤的父类的类名 2:可缺参数,可以是实例对象or该类的子类)

lass A(object):
    def __init__(self):
        print "enter A"
        print "leave A"

class B(A):
    def __init__(self):
        print "enter B"
        super(B, self).__init__()
        print "leave B"

>>> b = B()
enter B
enter A
leave A
leave B

with as 语句的作用主要如下:    
1、解决异常退出时资源释放的问题; 
2、解决用户忘记调用close方法而产生的资源泄漏问题;

with EXPR [ as  VAR ]:
    BLOCK
'''1,EXPR可以是任意表达式。
2,as  VAR是可选的。
3,BLOCK是with语句的语句体'''
with self.assertRaises(KeyError):  '''通过d['empty']访问不存在的key时,断言会抛出KeyError'''
    value = d['empty']

sublime显示缩进or空格

出现IndentationError: unindent does not match any outer indentation level错误一般是缩或者空格出现问题

差不多的代码执行出错,查找代码之间的变化:利用sublime插件sublimerge

1

单元测试(unittest):

文档测试(doctest):仅仅脚本测试的时候主食部分可执行

re正则匹配模块

re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。

import re
re.match(pattern, string, flags=0)

re.search 扫描整个字符串并返回第一个成功的匹配。

.  :通配符

+ :匹配多个

^:匹配从字符串或者一行的开头开始

$:匹配必须出现在字符串的末尾或者是行或者字符串末尾的\n之前

 

文件读取:常用到try.....finally和with ......as(注意文件打开以及释放以免占用系统内存资源)  二进制'b'以字节对象返回内容,文本模式(默认't')以str的对象形式返回

try:
    f = open('/path/to/file', 'r')
    print(f.read())
finally:
    if f:
        f.close()

with open('f:/pypy/fib.py','r') as f:
    print(f.read())

但是read()会一次性读取文件的全部内容,所以可以使用read(size) OR  readline()

StringIO和BytesIO

OS:

合成路径:os.path.join('target dir','new-dir')

创建新目录:os.mkdir('    ')

删除目录;os.rmdir('   ')

>>> os.mkdir('/Users/michael/testdir')
# 删掉一个目录:
>>> os.rmdir('/Users/michael/testdir')

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值