具有相同名称的实例

时间:2018-01-05 15:15:59

标签: python class csv oop

我正在创建一个程序来操作我的MTG卡集合(Geek,我知道),其中我正在上传我的集合的csv文件并尝试使用这些集合中的各个卡的对象创建各个集合的对象。所有的卡都有不同的属性,因为它们将包含我拥有的每张卡的数量,但是有很多具有相同名称的卡,但不在同一组中。我试图了解执行此任务的最简单方法是什么,如果我在一个集合中创建一个卡的实例,如果我为另一个集创建一个具有相同名称的实例,它是否会被删除/覆盖。或者只是更容易(更有意义)创建和对象的集合,并为各个卡片制作一个词典列表。

这是我到目前为止所拥有的:

import csv


class CardSet:
    def __init__(self, set_name):
        self.set_name = set_name

    def get_set(self):
        return self.set_name

    def add_card(card_name, card_num, amount, numb_foil, signed):
        cards = []
        card_name = Card(card_name, card_num, amount, numb_foil, signed)
        cards.append(card_name)
        return cards


class Card:
    def __init__(self, card_name, card_num, amount, numb_foil, signed):
        self.card_name = card_name
        self.card_num = card_num
        self.amount = amount
        self.numb_foil = numb_foil
        self.signed = signed


def csv_reader():
    # upload csv file
    cards = csv.reader(open('Collection.csv', 'rt', encoding='utf8'))
    list_sets = []  # keeps a tally of set names, as to not duplicate set objects
    list_obj_sets = []  # list of set objects to search through

    # Make a list of individual sets in collection, then make an instance of that card set
    # row[2] = Card Name, row[4] = card number, row[0] = amount owned, row[6] = foil owned, row[7] = signed
    for row in cards:
        # if set object does not exist, create object and add card to set
        if row[3] not in list_sets:  # row[3] contains set name
            list_sets.append(row[3])
            row[3] = CardSet(row[3])  # create set object
            list_obj_sets.append(row[3])
            row[3].add_card(row[2], row[4], row[0], row[6], row[7])  # create card object
        else:
            # if set object exists, add card to set
            for sets in list_obj_sets:  # find set object
                if sets.set_name == row[3]:
                    sets.add_card(row[2], row[4], row[0], row[6], row[7])  # create card object


csv_reader()

感谢您的帮助。 -pyRN

0 个答案:

没有答案
相关问题