我不确定是否需要一个完整的模块 – 层次结构是一种设计模式,每个层次结构都有足够的独特功能,很难概括.
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).在这两个之后,我使用上面的结构作为我的类的模板,而不是作为文字可重用模块.