如何在Python中将多个类对象实例存储在列表中?

1 投票
3 回答
3021 浏览
提问于 2025-04-18 16:41
  1. 我怎么把多个类的实例存储在一个列表里呢?

  2. 我怎么在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)。

撰写回答