python创建实例失败_python类:关于创建实例的问题

我使用的是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,…]

任何想法都会很感激的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值