Скрипт работает только без класса
функция работает только без класса,выводится нужная линия из 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 шт):
По-моему вы не очень хорошо представляете как работают классы (или я не очень понял вопрос). Недостаточно просто перед вашей функцией добавить имя класса и ждать что всё заработает. Во-первых, в функциях класса (методах) первым аргументом должен быть '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()
И еще советую прочитать вот эту статью Ссылка