如何在Python中将多个类对象实例存储在列表中?
我怎么把多个类的实例存储在一个列表里呢?
我怎么在Python中把一个名字和一个类型绑定在一起?在Java中,我会这样做:
SliceField[] schemaElements = { new SliceField("cust", SliceDB.INT), new SliceField("name", SliceDB.STRING), new SliceField("age", SliceDB.INT), new SliceField("phone", SliceDB.STRING), new SliceField("address", SliceDB.STRING) }
那在Python中我该怎么做呢?
3 个回答
0
你可以这样做:
schemaElements = [SliceField("cust", SliceDB.INT),....]
在这样做的时候,确保你的类 SliceField
里有定义 __init__
方法。
class SliceField(value,type):
def __init__(self, value, type):
self.value = value
self.type = type
# Define other class parameters
如果你想让 SliceField
绑定到某些特定的条件,你需要在这个类里面自己定义这些条件。
0
在Python中,你可以像在Java中一样做到这一点:
class Test:
def __init__(self, a, b):
self.a = a
self.b = b
l = [Test(1, 2), Test(3, 4), Test("I declare", "a thumb war")]
l[0].a
>>> 1
l[2].b
>>> 'a thumb war'
1
关于第一个问题,你只需要一个列表。
schemaElements = [SliceField("cust", SliceDB.INT), ..., SliceField("address", SliceDB.STRING)]
至于第二个问题,我不太确定你具体指的是什么:
如果你是想确保一个变量总是保持某种类型,那其实没有简单的方法可以做到这一点,而且不推荐这样做,建议使用鸭子类型。
如果你是想重命名类型(就像C语言中的
typedef
),那么只需要直接赋值就可以了(newName = typeName
)。