我想要一个名为ProjectDirectory的类和一个名为MetaDirectory的类。每个项目都有一个MetaDirectory,其中包含一些元数据。这是编写此类的好方法:

class ProjectDirectory(object):
    def __init__(self, directory=None):
        self.directory = directory
        self.meta_directory = MetaDirectory(self)
    def __repr__(self):
        return self.directory

class MetaDirectory(object):
    def __init__(self, project_directory=None):
        self.project_directory = project_directory
        self.directory = "%s/.meta/" % project_directory


ProjectDirectory引用MetaDirectoryMetaDirectory引用ProjectDirectory

还有其他解决方案还是这个解决方案很好?

最佳答案

很好,但是由于类之间现在存在一对一的连接,因此您实际上可以合并它们。如果ProjectDirectory旁边有许多目录类型,则可以从MetaDirectory继承。

但是,如果由于某些原因您不想这么做,那么上面的设计就可以了。本身没有任何问题。

10-06 10:36
查看更多