我有一个班级定义
class DataItem(object):
"""Elementary piece of data."""
我想定义这个类的几个实例并将它们存储在某个地方。我希望我可以将diOne和diTwo定义为类DataItem的成员,并将它们存储在diOne.py和diTwo.py某处。但是,我喜欢这样,当我导入定义了DataItem的模块时,我将自动访问所有已定义的实例。
问题是,如何组织模块和实例文件?我是否正确地考虑过这个问题?
编辑:充实我的意图,
我希望有更多代码来定义每个实例。我希望它们位于不同的文件中,这样我就可以对每个实例进行更好/更简单的版本控制,因为它们将拥有自己的生命。我可以在同一模块中轻松定义它们,但是当可以定义100个以上实例的潜力时,更改模块和控制谁有权更改该代码似乎是一个更大的麻烦。每个都有不同程度的。挂起频率。
我希望澄清一下。
答案 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_one
和data_item.di_two
- 或者,您可以from data_item import di_one, di_two
直接引用它们。