我不确定我是否需要一个完整的模块——层次结构是一种设计模式,每个层次结构都有足够的独特功能,很难一概而论。
class Node( object ):
def __init__( self, myData, children=None )
self.myData= myData
self.children= children if children is not None else []
def visit( self, aVisitor ):
aVisitor.at( self )
aVisitor.down()
for c in self.children:
aVisitor.at( c )
aVisitor.up()
class Visitor( object ):
def __init__( self ):
self.depth= 0
def down( self ):
self.depth += 1
def up( self ):
self.depth -= 1
我发现这就是我所需要的。而且我发现很难用它来制作一个可重用的模块,因为(a)这里的代码太少了,(b)每个应用程序都添加或更改了很多代码。
此外,我发现最常用的层次结构是文件系统,为此我有os
模块。第二个最常用的层次结构是 XML 消息,我有 ElementTree(通常通过 lxml)。在这两个之后,我将上述结构用作我的类的模板,而不是作为文字可重用模块。