【问题标题】:Python List of classesPython 类列表
【发布时间】:2013-11-06 06:18:47
【问题描述】:

我正在尝试设计一个“时间跟踪器”设备。我希望能够定义一个类行,例如:

class line():
    def __init__(self, course, weekHours, hoursTotal, comment)
        self.course = course
        self.weekHours = weekHours
        self.hoursTotal = hoursTotal
        self.comment = comment

然后能够存储这些类对象的数组(我猜它在 Python 中称为列表?)。因此,我可以打印由所有这些行生成的表格,并将这些行保存到输出文件中,然后稍后能够将其读回此列表以查看表格或进行更改。我要声明table = [class line()] 吗?如果是这样,我如何访问列表中的每个对象?我希望能够区分它们,以便在必要时编辑特定的“行”。

【问题讨论】:

  • 你可以像处理python中的任何其他对象一样......你不需要声明任何东西。
  • @sashkello 抱歉,我用 C 语言工作太久了,以至于我忘记了 Python 是如何工作的。

标签: python list class


【解决方案1】:

您可以将类实例存储在列表中:

lines = []
lines.append(line('Math', '3', '12', 'Hello World!'))
...

要获得第 i 行,您只需:

lines[i]

请注意,在这里开设课程确实没有充分的理由。 python dict 会更高效:

lines = []
lines.append({'course': 'Math', ...})

【讨论】:

  • 我在想我不能使用字典,但现在我知道它是如何工作的,我可以将课程名称作为键,然后我可以从我的课程 line() 中删除它。谢谢!
  • 如何访问class Lines() 的成员变量? lines[i].course 似乎不起作用。
  • @holzkohlengrill -- 这应该工作。你看到了什么错误?
  • @mgilson 确实,你是对的。令我困惑的是,在我的情况下,它在运行时(来自文件)附加数据。我发现非常不方便的是IDE(PyCharm)没有提议(可能是因为此时它不知道任何列表条目)任何类成员变量。有没有办法克服这个问题?该列表将仅包含相同类型/类的条目。
  • @holzkohlengrill -- 不幸的是,我对 PyCharm 如何进行类型推断一无所知... :-/
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-20
  • 2012-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-20
  • 1970-01-01
相关资源
最近更新 更多