Python класс, который может хранить несколько экземпляров этого же класса - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть вопрос относительно python создания класса для создания чего-то похожего на следующее объяснение.

Например, у компьютера не может быть ни одного экземпляра, ни одного, ни нескольких, и он будет представлен (необязательно с dunder, я не знаю) как Компьютер (), Компьютер (231), Компьютер (2, 72, 101, 102), где число или числа - это идентификаторы записей, хранящихся в базе данных.

Единственные примеры, которые я нашел на inte rnet - это способ хранения нескольких экземпляров классов в простых python списках, которые, на мой взгляд, не совсем то, что я ищу.

Спасибо.

1 Ответ

0 голосов
/ 16 апреля 2020

Если вы хотите передать произвольное количество идентификаторов в класс Computer, вы можете сделать несколько вещей.

Во-первых, вы можете хранить список идентификаторов в качестве атрибута класса, поэтому

class Computer:
    def __init__(self, ids):
        self.ids = ids

computer = Computer(ids = [1, 4, 7, 8])

Второй вариант более хакерский, но я не совсем уверен, что вы хочу выполнить sh, поэтому просто добавлю это.

class Computer:
    def __init__(self, *args):
        for arg in args:
            setattr(self, f'id_{arg}', arg)

computer = Computer(1, 4, 7, 8)
print(computer.__dict__) 
#output: {'id_1': 1, 'id_4': 4, 'id_7': 7, 'id_8': 8}

Надеюсь, это поможет

...