我使用的是python2.7,我想用类创建某种数据结构
问题A:
假设我创建了这个类:class my_data():
def __init__(self,data1,data2,data3):
self.data1 = data1
self.data2 = data2
self.data3 = data3
然后我创建了一些类的实例,例如
^{pr2}$
如您所见,data3可能是None或instance。到现在为止,一直都还不错。在
现在,让我们再次尝试创建其他实例(困难的方法):d2 = my_data(4,5,d1)
d1 = my_data(1,2,None)
d3 = my_data(7,8,d2)
在这种情况下,将发生NameError异常,因为显然
d2=我的数据(4,5,d1),d1尚未定义。在
所以,问题是:我想创建data3应该是None或instance的实例。
如果data3不是None或是一个已存在的实例,则没有问题。
但是如果data3引用一个未存在的实例,我希望创建该实例。在
例如:d2=my_data(4,5,d1)
如果d1不存在,我希望被初始化为一个虚拟实例d1=my_data(None,None,None),然后d2也要被初始化
我试过了,但似乎没有成功:class my_data():
def __init__(self,data1,data2,data3):
self.data1 = data1
self.data2 = data2
try:
self.data3 = data3
except:
data3 = my_data(None,None,None)
self.data3 = data3
问题B:
假设我们以某种方式创建了类的一些实例(d1,d2,d3,…)。如何将实例存储在类内的列表中,以便在该类中创建的每个实例都包含在列表中?在
像我的_data.my_列表()
会产生
[d1,d2,d3,…]
任何想法都会很感激的