- 本书赞誉
- 前言
- 目标读者
- 不适合阅读本书的读者
- 本书结构
- 什么是数据处理
- 遇到困难怎么办
- 排版约定
- 使用代码示例
- 致谢
- 第 1 章 Python 简介
- 第 2 章 Python 基础
- 第 3 章 供机器读取的数据
- 第 4 章 处理 Excel 文件
- 第 5 章 处理 PDF 文件 以及用 Python 解决问题
- 第 6 章 数据获取与存储
- 第 7 章 数据清洗:研究、匹配与格式化
- 第 8 章 数据清洗:标准化和脚本化
- 第 9 章 数据探索和分析
- 第 10 章 展示数据
- 第 11 章 网页抓取:获取并存储网络数据
- 第 12 章 高级网页抓取:屏幕抓取器与爬虫
- 第 13 章 应用编程接口
- 第 14 章 自动化和规模化
- 第 15 章 结论
- 附录 A 编程语言对比
- 附录 B 初学者的 Python 学习资源
- 附录 C 学习命令行
- 附录 D 高级 Python 设置
- 附录 E Python 陷阱
- 附录 F IPython 指南
- 附录 G 使用亚马逊网络服务
- 关于作者
- 关于封面
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
E.8 类型检查
Python 允许简单的类型转换,这意味着你可以将字符串转换为整数或将列表转换为元组,等等。但是这些动态类型意味着可能会引发问题,特别是在大型的代码仓库中,或在你使用新的库时。常见问题是一些特定的函数、类或方法对应着一些特定的对象类型,而你传递了错误的类型。
随着你的代码变得更高级和复杂,问题会变得越来越难办。由于你的代码更加抽象,你会将所有的代码保存在变量中。如果一个函数或方法返回一个不符预期的类型(例如 None 而不是列表),这个对象可能被传递到另一个函数中——可能是一个不接受 None 类型的函数,之后抛出一个错误。很可能错误被捕获了,但代码会认为异常是因为另外的问题触发的,并且继续执行。这会很快地脱离你的控制,并且变成一个相当难以调试的问题。
对于如何处理这些问题,最好的建议是编写非常精准又清晰的代码。你应该积极测试你的代码(确保没有 bug),持续关注你的脚本,并注意任何反常的行为,以此确保函数永远返回期待的内容。你还需要添加日志来帮助确认对象包含的内容。除此之外,清楚你捕获的异常,而不只是捕获所有的异常,这会帮助你更容易地找到和修复问题。
最后,有时 Python 会实现 PEP-484(https://www.python.org/dev/peps/pep-0484/),它包含了类型提示,允许你检查传递的变量和代码,以自我检查这些问题。这在未来 Python 3 发布之前可能不会被合并,但是好消息是,这已经在进行当中,你可以期待在未来看到更多的有关类型检查的结构。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论