如何组织Python相关的类

时间:2015-09-04 18:10:26

标签: python oop

我目前在文件中有这个结构:

class Foo:
    __init__(self): 
       pass

class FooType(object):
    __init__(self, value):
       _foo = value
    __str__(self):
       print ">>%s<<" % self._foo

class FooException(Exception):
    pass

以上所有课程都紧密相关。我的主类将具有声明为前缀为Foo的分隔类的类型,结构和枚举。像往常一样,应为Foo声明自定义异常。在一天结束时,我会在其他课程的同一级别上有很多相关的课程。

是否有正确的方法来获得更好的结构?也许namespace可以提供帮助,但我不知道如何使用它。

2 个答案:

答案 0 :(得分:3)

在Python中,执行命名空间的惯用方法是使用不同的模块。您应该将文件命名为foo.py,然后将其导入。然后将其与foo.Exceptionfoo.Type一起使用。如果您需要一个需要多个文件的更复杂的模块,您应该创建一个名为foo的文件夹,并将__init__.py文件与该模块的其他组件一起放置。有关使用模块的更多文档,请参阅the docs

另一种解决方案是使用嵌套类来提供命名空间。所选的this question about nested classes答案建议将它们用于命名空间。

答案 1 :(得分:1)

您可以在modules中组织您的课程,就像Python标准库一样。