Как добавить объект класса в другой класс python?

519 просмотра
0
0 Комментариев

Созданы два класса, их максимальный объем вымышленных единиц = 100.
При создании объекта указываем кол-во занимаемых им единиц, превысить их не можем.введите сюда описание изображения

Как добавить третий класс, объекты которого можно было бы помещать в первые два класса?


Добавить комментарий

1 Ответы

Python Опубликовано 12.12.2018
0

Можно создать родительский класс (в том числе чтобы не дублировать код) и проверку, является ли аргумент type числом или родственным классом:

class A(object):
 
    def __init__(self, type):
        if isinstance(type, A): type = type.type
        self.type = type
        self.update_max()
 
    def update_max(self):
        max = self.__class__.max = getattr(self.__class__, 'max', 100)
        c = max - self.type
        if c < 1:
            print '%s size is max' % self.__class__.__name__
        else:
            self.__class__.max = c
 
    class Trash(A): pass
    class Packet(A): pass

На выходе будем иметь:

t1 = Trash(20)
t2 = Trash(120)
p1 = Packet(20)
p2 = Packet(t1)
 
print Trash.max, Packet.max
 
> Trash size is max
> 80 60

Переменная класса max проверяется и задается в функции update_max. Сделал так, чтобы не надо было задавать max для каждого дочернего класса в отдельности.

Не очень понимаю смысл проверки, поэтому оставил все, как было в вашем коде.

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up