【问题标题】:Python: Separate class methods from the class in an own packagePython:将类方法与自己的包中的类分开
【发布时间】:2016-06-15 08:28:56
【问题描述】:

我写了一个有很多不同参数的类,根据参数类使用不同的动作。

我可以很容易地将我的方法区分为不同的情况,每组方法都属于某些参数。

这导致了一个巨大的 .py 文件,在一个类中实现了所有方法。为了更好的可读性,是否可以在一个自己的文件中编写多个方法并将其(类似于包)加载到类中以将它们视为类方法?

为了提供更多细节,我的类是决策树。例如,一个参数是修剪方法,用于缩小树。由于我使用不同的修剪方法,这在我的课堂上会占用很多行。我需要为每个修剪参数设置一组方法。最好将用于从另一个文件中修剪的方法简单地加载到类中,从而缩小我的决策树 .py 文件的大小。

【问题讨论】:

  • 听起来像是 XY 问题。您能否至少提供一个示例来说明您要完成的工作。
  • 你说得对,我加了一个例子。

标签: python python-3.x methods packages class-method


【解决方案1】:

为了更好的可读性,我有一些建议。

  1. 折叠所有函数定义,可以通过以下方式轻松实现 在大多数流行的文本编辑器中单击即可。
  2. 将相关方法并排放置。
  3. 给出适当的名称来分类和区分方法,例如 例子。

    def search_board_first(): 通过

    def search_deep_first(): 通过

关于将一个巨大的类拆分为一个面向对象的行为,我的经验法则是考虑可重用性。如果函数可以被其他类重用,则应将它们放在单独的文件中,并使它们独立于(静态)其他类。

如果方法与类绑定并且没有其他地方,最好将该方法包含在类本身中。这样想,要查看代码,无论如何都需要引用类属性。从逻辑上讲,仅仅为了分割而分割文件并没有多大意义。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-11
    • 1970-01-01
    • 2020-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    相关资源
    最近更新 更多