您的位置:首页 > 编程语言 > Python开发

Python错误、调试和测试——学习笔记

2016-04-21 22:21 761 查看
1、错误处理(
try...except...finally...
的错误处理机制)
try:
print('try...')
r = 10 / int('a')
print('result:', r)
except ValueError as e:
print('ValueError:', e)
except ZeroDivisionError as e:
print('ZeroDivisionError:', e)
finally:
print('finally...')
print('END')</span>
2、调用日志,记录错误,保证程序正常退出,不实现效果但不至于出错:import logging
import logging
try:
pass
except Exception as e:
logging.exception(e)</span>
3、 所有的错误类型都继承自
BaseException
4、通过调用import logging 并配置相关文件,将程序异常写入log文件logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',datefmt='%a, %d %b %Y %H:%M:%S',filename='/tmp/test.log',filemode='w')
在logging.basicConfig()函数中可通过具体参数来更改logging模块默认行为,可用参数有filename: 用指定的文件名创建FiledHandler(后边会具体讲解handler的概念),这样日志会被存储在指定的文件中。filemode: 文件打开方式,在指定了filename时使用这个参数,默认值为“a”还可指定为“w”。format: 指定handler使用的日志显示格式。datefmt: 指定日期时间格式。level: 设置rootlogger(后边会讲解具体概念)的日志级别stream: 用指定的stream创建StreamHandler。可以指定输出到sys.stderr,sys.stdout或者文件,默认为sys.stderr。若同时列出了filename和stream两个参数,则stream参数会被忽略。format参数中可能用到的格式化串:%(name)s Logger的名字%(levelno)s 数字形式的日志级别%(levelname)s 文本形式的日志级别%(pathname)s 调用日志输出函数的模块的完整路径名,可能没有%(filename)s 调用日志输出函数的模块的文件名%(module)s 调用日志输出函数的模块名%(funcName)s 调用日志输出函数的函数名%(lineno)d 调用日志输出函数的语句所在的代码行%(created)f 当前时间,用UNIX标准的表示时间的浮 点数表示%(relativeCreated)d 输出日志信息时的,自Logger创建以 来的毫秒数%(asctime)s 字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒%(thread)d 线程ID。可能没有%(threadName)s 线程名。可能没有%(process)d 进程ID。可能没有%(message)s 用户输出的消息5、Python 中 if __name__ == "__main__": 解析模块是对象,并且所有的模块都有一个内置属性 __name__。一个模块的 __name__ 的值取决于如何应用模块。如果 import 一个模块,那么模块__name__ 的值通常为模块文件名,不带路径或者文件扩展名。但是也可以像一个标准的程序那样直接运行模块,在这 种情况下, __name__ 的值将是一个特别缺省"__main__"。在cmd 中直接运行.py文件,则__name__的值是'__main__';而在import 一个.py文件后,__name__的值就不是'__main__'了;从而用if __name__ == '__main__'来判断是否是在直接运行该.py文件。6、Python 自定义模块导入方法from package import module注意:一定要新建python package,会自动添加一个__init__.py 文件。这里的package里面一定要有__init__.py文件,否则在import过程中pycharm会提示出错,尽管程序能运行。7、调试 (未完待续)8、单元测试(未完待续)9、文档测试(未完待续)声明:学习廖雪峰的Python教程——错误、调试和测试章节后的学习笔记,感谢MichealLiao.
                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: