Python语言支持面向对象编程,不过不是必须要使用的。很多有经验的Python程序员相对较少使用类和多态。有很多这方面的原因。
大部分存储在类中的属性可以用列表、字典和集合类型来表示。Python有很多优化(设计和实现层面)的内置函数和标准库来处理这些数据。类仅当需要的时候才使用,并且永远不要超过出API边界。
在Java语言中,类是封装的基本单元。每个文件都代表一个Java类,不管解决的问题是否有意义。如果有个方便的工具函数,那么将会封装到Utility类中。即使我们不能直观地理解Utility对象代表什么意思,也没有关系。当然,我夸大了,但重点是明确的,一旦习惯把所有内容封装到一个类中,就会很容易把这个概念带到其他的编程语言。
在Python中,一组相关的函数和数据通常封装在模块中。如果使用MVC的WEB框架来构建"Chirp"应用,可能会存在一个包含模型、视图和控制器的chirp包。如果"Chirp"是一个特别宏大的项目,代码库很大,这些模块可以很容易自己打包。 控制器包可能有一个持久性模块和处理模块。除了直觉上属于控制者之外,这些都不需要以任何方式相关。
如果所有这些模块都变成了类,那么互操作性立即就会变成了一个问题。 我们必须认真准确地确定我们将要对外公开的方法,状态如何更新,以及类支持的测试方法。不像一个字典或列表,我们必须编写代码来处理和持久性化对象。
请注意,在"Chirp"的描述中,没有任何需要使用类的地方。简单的导入语句使代码共享和封装变得简单。将状态显式作为参数传递给函数让一切变得松耦合。系统更容易接收,处理和转换数据流。
可以确切的说,类可能是更清晰或自然地表示一种东西的方式。在许多情况下,面向对象编程是一个很方便的范例,只是不要让它成为使用的唯一范例。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。