我真的很惊讶这不是复制品。我看到了一些类似的问题,我想没有一个简明的答案,所以我是这样做的:类(或组)实际上是一个完整的模块。你不必这样做,但如果你在多个文件上拆分一个类,我认为这是“最干净的”(意见)。
定义在__init__.py中,通过有意义的分组将方法拆分为文件。
方法文件只是带有函数的普通python文件,除了不能忘记“self”作为第一个参数。这里可以有辅助方法,既可以使用self,也可以不使用。
方法直接导入到类定义中。
假设我的类是一些合适的gui(这实际上是我第一次这样做)。所以我的文件层次结构可能看起来像mymodule/
__init__.py
_plotstuff.py
_fitstuff.py
_datastuff.py
所以plot-stuff有绘图方法,fit-stuff包含拟合方法,data-stuff包含加载和处理数据的方法-你明白了。按照惯例,我用_标记文件,以表明这些文件实际上并不打算直接导入模块之外的任何地方。例如_plotsuff.py可能看起来像:def plot(self,x,y):
#body
def clear(self):
#body
现在最重要的是__init__.py:class Fitter(object):
def __init__(self,whatever):
self.field1 = 0
self.field2 = whatever
#Imported methods
from ._plotstuff import plot, clear
from ._fitstuff i