Как дать имена экземплярам классов, созданным с помощью циклов for? - PullRequest
0 голосов
/ 24 февраля 2020

Как атрибут определенного класса, я создаю экземпляр группы объектов другого класса. Моя проблема в том, что у них ужасные имена для адресов памяти. Как мне дать им правильные имена?

class CaseReader(object):
    def __init__(self, path):
        cases_paths = glob(path + '//*')
        cases_names = os.listdir(path)
        self.case = [Case(i) for i in cases_paths]

После запуска:

a = CaseReader(path)
a
Out[4]: <__main__.CaseReader at 0x1c6dfc7fa88>
a.case
Out[5]: 
[<__main__.Case at 0x1c6dfc99fc8>,
 <__main__.Case at 0x1c6dfc99dc8>,
 <__main__.Case at 0x1c6dfcaf3c8>,
 <__main__.Case at 0x1c6dfcaf448>,
 <__main__.Case at 0x1c6dfcaf208>]

1 Ответ

1 голос
/ 24 февраля 2020

Перезаписать функцию __str__ в определении класса и распечатать все атрибуты, которые вы хотите видеть, когда вы печатаете ссылку на объект.

Пример кода

class A:
    def __init__(self, name):
         self.name = name
    def __str__(self):
         return self.name
...