Как мне отобразить тип класса объекта и создать отсортированный список, разделенный запятыми? - PullRequest
0 голосов
/ 29 мая 2020

В моей проблеме говорится:

Создайте класс под названием DataManager, который используется для отслеживания простой статистики, связанной с набором файлов. Ожидается, что каждый файл будет содержать строки похожих данных, разделенных табуляцией. Для получения полного кредита используйте приведенные ниже методы.

init : конструктор DataManager не принимает никаких параметров, кроме self. Конструктор создает следующие атрибуты: # 1) атрибут словаря, называемый данными, для хранения данных (словарь отображает целые числа индекса в списки значений). # 2) целочисленный атрибут, называемый recordnum, для хранения текущего значения индекса (всегда должен быть индексом следующей добавляемой записи). # 3) атрибут списка, называемый file_list, для хранения файла или файлов, которые будут добавлены.

repr : отображает тип объекта (DataManager) и список разделенных запятыми файлы, которые были добавлены к объекту. Этот список имен файлов должен быть отсортирован.

Я продолжаю получать либо TypeError, либо AttributeError для моего метода repr . Как мне это исправить?

Мой текущий код:

  #Method: __init__
    #Data is a dictionary, recordnum is an integer, 
    #file_list is a list to store added file(s). 
    #Self, Dict, Int, List -> Self
    def __init__ (self):

        self.data = {}
        self.file_list = []
        self.recordnum = 0


    #Method: __repr__
    def __repr__ (self): 

         return type(object)
         return str(sorted(self.file_list.split(','))

1 Ответ

0 голосов
/ 30 мая 2020

Обычно реппер возвращает точное строковое представление объекта, которое позволяет вам воссоздать его с помощью eval:

eval(repr(instance)) --> instance

в вашем случае, это может быть что-то вроде этого :

class MyQuestion:

    def __init__ (self, file_list):
        self.data = {}
        self.file_list = file_list[:]
        self.recordnum = 0

    def __repr__ (self): 
         return f'{self.__class__.__name__}({sorted(self.file_list)})'

MyQuestion([2, 4, 6, 1, 3])

# ---> 'MyQuestion([1, 2, 3, 4, 6])'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...