python类和实例组织

时间:2013-09-23 18:08:45

标签: python class instance

我有一个班级定义

class DataItem(object):
    """Elementary piece of data."""

我想定义这个类的几个实例并将它们存储在某个地方。我希望我可以将diOne和diTwo定义为类DataItem的成员,并将它们存储在diOne.py和diTwo.py某处。但是,我喜欢这样,当我导入定义了DataItem的模块时,我将自动访问所有已定义的实例。

问题是,如何组织模块和实例文件?我是否正确地考虑过这个问题?

编辑:充实我的意图,

我希望有更多代码来定义每个实例。我希望它们位于不同的文件中,这样我就可以对每个实例进行更好/更简单的版本控制,因为它们将拥有自己的生命。我可以在同一模块中轻松定义它们,但是当可以定义100个以上实例的潜力时,更改模块和控制谁有权更改该代码似乎是一个更大的麻烦。每个都有不同程度的。挂起频率。

我希望澄清一下。

2 个答案:

答案 0 :(得分:2)

我相信你可以做下面的事情。确保它们位于同一目录中。然后,您可以在Instances.py中创建任意数量的实例(或者具有相同结构的多个文件)。这会回答你的问题吗?

MyClass.py

class DataItem(object):
    def __init__(self, v):
        self.value = v

Instances.py

import MyClass

# Creates an instance of DataItem, and prints its value
diOne = MyClass.DataItem(1)
print diOne.value

答案 1 :(得分:1)

没有理由有单独的diOne / diTwo文件 - 它们几乎是空的。如果您确实需要这样做,您可以在定义类的文件中执行此操作:

data_item.py:

class DataItem(object):
    pass

di_one = DataItem()
di_two = DataItem()

现在当您在任何地方import data_item时,您会自动引用data_item.di_onedata_item.di_two - 或者,您可以from data_item import di_one, di_two直接引用它们。