Скрипт работает только без класса

функция работает только без класса,выводится нужная линия из CSV, когда добавляю класс "NAME" , код выполняется без каких либо ошибок,но не выводятся данные из CSV, какие ошибки в коде?

import csv

class NAME:
def csv_dict_reader(file_obj):
    reader = csv.DictReader(file_obj, delimiter=',')
    for line in reader:
        print(line["name"])

        if __name__ == "__main__":
            with open("gb_parliament .csv") as f_obj:
                csv_dict_reader(f_obj)

Ответы (1 шт):

Автор решения: whizz169

По-моему вы не очень хорошо представляете как работают классы (или я не очень понял вопрос). Недостаточно просто перед вашей функцией добавить имя класса и ждать что всё заработает. Во-первых, в функциях класса (методах) первым аргументом должен быть 'self'. Во-вторых, нужно определить метод __init__ для создания объекта этого класса. После чего создать, собсно, объект класса и применить к нему ваш метод для печати файла. В моем представлении это выглядит примерно так (сам я код не проверял):

import csv


class NAME:
    def __init__(self, file_obj):
        self.reader = csv.DictReader(file_obj, delimiter=',')

    def csv_dict_reader(self):
        for line in self.reader:
            print(line["name"])


if __name__ == "__main__":
    with open("gb_parliament .csv") as f_obj:
        file = NAME(f_obj)
        file.csv_dict_reader()

И еще советую прочитать вот эту статью Ссылка

→ Ссылка