如何在没有类型安全的情况下编程
How to program without type safety
Java 是一种 硬类型 语言,换成 Python 没有类型安全,我觉得有点难以相处。
那么,任何人都可以帮助我在没有类型安全的情况下进行编程的良好实践和概念。
是否需要在每个 getter 和 setter 上验证值 isinstance
是否为所需类型?
没有类型安全我该如何使用 POO?
- 如何在没有类型安全的情况下封装我的对象?
- 你通常不应该进行类型检查。让类型自由。忘记类型安全。 python中的所有代码都是一种泛型编程。
- 面向对象编程没有与类型安全相结合。
- Python不支持封装实例变量和私有函数。但是明智的 pythonista 对私有变量或函数使用
_
前缀。
相反,单元测试会帮助你。
在我的最爱中,nosetests
和 watchdog
是很棒的工具。
nosetest
运行项目中的所有 *_test.py
个文件。
watchmedo
in watchdog
将监视文件更改并执行特定命令。
通常我会使用这两个工具,例如
$ watchmedo shell-command --patterns="*.py" --recursive --wait --command="nosetest -sv"
此单行代码会在 *.py 文件中的每次更新时自动运行单元测试。
您所有的代码修改都会被监控。
Java 是一种 硬类型 语言,换成 Python 没有类型安全,我觉得有点难以相处。 那么,任何人都可以帮助我在没有类型安全的情况下进行编程的良好实践和概念。
是否需要在每个 getter 和 setter 上验证值
isinstance
是否为所需类型?没有类型安全我该如何使用 POO?
- 如何在没有类型安全的情况下封装我的对象?
- 你通常不应该进行类型检查。让类型自由。忘记类型安全。 python中的所有代码都是一种泛型编程。
- 面向对象编程没有与类型安全相结合。
- Python不支持封装实例变量和私有函数。但是明智的 pythonista 对私有变量或函数使用
_
前缀。
相反,单元测试会帮助你。
在我的最爱中,nosetests
和 watchdog
是很棒的工具。
nosetest
运行项目中的所有 *_test.py
个文件。
watchmedo
in watchdog
将监视文件更改并执行特定命令。
通常我会使用这两个工具,例如
$ watchmedo shell-command --patterns="*.py" --recursive --wait --command="nosetest -sv"
此单行代码会在 *.py 文件中的每次更新时自动运行单元测试。 您所有的代码修改都会被监控。