列表作为参数和方法调用

时间:2016-10-25 23:54:14

标签: python list function class

希望有人可以提供帮助。我主要在Java工作并且有一个我必须在Python中完成的任务,我几乎一无所知。

我有一个CSV文件,我正在阅读并设法创建每个项目的列表或列表。每行代表一个thingID,请求的时间,请求的时间,填充所需的时间。我需要将它们放入优先级队列,运行它们并打印结果。虽然我没有比下面显示的更远,因为我显然不知道函数是如何工作的。整个自我和__init__的东西让我感到困惑,以及这种语言运作所需的一切。

def main():
    with open('things.csv', 'r') as file:
        reader = csv.reader(file)
        index = 0
        for row in reader:
            print(row)

main()

这给了我一个像这样的数组列表:

['Thing1', '0', '1', '4']
['Thing2', '1', '1', '3']

我有另一个Things.py(我不应该在单个.py中有多个类),我有:

class Things(object):
    def __init___(self, row, thingInfo):
        self.row = row
        self.thingInfo = thingInfo

我尝试在def下创建另一个__init__但我无能为力。 我试图将列表对象的不同部分分开,这样我就可以对它的各个部分进行操作,如ID,请求的时间等,但不知道如何做到这一点。我尝试了各种各样的东西,但得到了类型错误的属性错误。我完全失败了。任何帮助将不胜感激。我只需要向正确的方向迈出几步,因为我已经完全碰到了墙。

3 个答案:

答案 0 :(得分:0)

希望此模板有所帮助:

{{1}}

答案 1 :(得分:0)

列表拆包可能是您想要的:

class Things(object):
    def doSomething(self):
        thing_id, time_of_request, time_requested, time_needed_to_fill = self.row
        # do whatever u want with the above variables

答案 2 :(得分:0)

您可以通过像这样索引它们(与Java中相同)明确地将传递给Things.__init__()的列表对象的不同部分分开:

class Things(object):
    def __init___(self, row, thingInfo):
        self.row = row
        self.id = thingInfo[0]
        self.time_requested = thingInfo[1]
        self.another_thing = thingInfo[2]
        # etc ...