<分区>
我一直在研究解决魔方的程序,但我发现自己不确定一些事情。首先,如果我有一堆具有通用应用程序的功能(例如,清除屏幕),并且不知道我是否应该将它们更改为类内部的方法。我的部分代码是面向对象的,另一部分是过程性的。这是否违反了 PEP8/这是一种不好的做法吗?我想从更广泛的角度来看,混合两种编程风格(OOP、函数式、过程式等)是不是一个坏主意?
<分区>
我一直在研究解决魔方的程序,但我发现自己不确定一些事情。首先,如果我有一堆具有通用应用程序的功能(例如,清除屏幕),并且不知道我是否应该将它们更改为类内部的方法。我的部分代码是面向对象的,另一部分是过程性的。这是否违反了 PEP8/这是一种不好的做法吗?我想从更广泛的角度来看,混合两种编程风格(OOP、函数式、过程式等)是不是一个坏主意?
最佳答案
如果问题可以通过这种方式更轻松地解决并且您的语言支持它,我会说它一点也不差。
编程范式只是解决问题的不同方法:
当您将问题分解成更小的问题时,您可能会发现问题的某些部分可以更容易地以功能方式解决,而其他部分则以过程方式解决。完全有可能出现这样的问题。
Python 主要是程序化的,相当面向对象,并且具有函数特性(即functools
)。它不像 Haskell 那样功能强大,也不像 C# 那样面向对象,但它允许您在某种程度上使用这些范例。
关于python - 在 Python 中混合 OOP 和过程编程(或一般混合编程风格)是不好的做法吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47441017/
相关文章:
python - 如何使用 boost.python 将预填充的 "unsigned char*"缓冲区传递给 C++ 方法?
python 从表中选择列,其中列 = self.variable
django - Python/django.db : How to create a generic class without hardcoded Meta. db_table?
c++ - 将 C++ 类转换为过程 API : common way of replacing member variables?
php - 使用 mysql 数据库中的数据在 html 表中显示给定时间的事件并发进程数
Python单元测试: How to initialize selenium in a class and avoid having the browser opening twice?