Как унаследовать атрибуты базового класса в Python'е? Имеется вот такой код:class BaseImage:
def __init__(self, width = 1920, height = 1080, bytespp = 3):
self.__width = width
self.__height = height
self.__bytespp = bytespp
self.__image = bytearray(self.__width * self.__height * self.__bytespp)
def __getitem__(self, coordinate):
shift = (coordinate[0] + self.__width * coordinate[1]) * self.__bytespp
return self.__image[shift : shift + self.__bytespp]

def __setitem__(self, coordinate, color):
if len(color) != self.__bytespp:
raise BadColorError
shift= (coordinate[0] + self.__width * coordinate[1]) * self.__bytespp
self.__image[shift : shift + self.__bytespp] = color
class TGAImage(BaseImage):
def __init__(self, width = 1920, height = 1080, bytespp = 3):
BaseImage(width, height, bytespp)
def write(self, target):
out = open(target, 'bw')
header_area = (
b'\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00'
+ bytes([super.__width // 256, super().__width % 256])
+ bytes([super().__height // 256, super().__height % 256])
+ bytes([super().__bytespp >> image = ImageIO.TGAImage()
>>> for x in range(1080):
... image[x, x] = b'\xff\x00\x00'
...
Traceback (most recent call last):
File "", line 2, in
File "/home/alexander/Codding/Render/Render/ImageIO.py", line 25, in __setitem__
if len(color) != self.__bytespp:
AttributeError: 'TGAImage' object has no attribute '_BaseImage__bytespp'
Насколько я понял, он не находит атрибут __bytespp объекта TGAImage.
Как его правильно унаследовать?

21 Авг 2019 в 07:08
229 +1
0
Ответы
1

Для того чтобы правильно унаследовать атрибуты базового класса в Python'е,, необходимо вызвать конструктор базового класса из конструктора производного класса. Измените код класса TGAImage следующим образом:

class TGAImage(BaseImage):
def __init__(self, width = 1920, height = 1080c, bytespp = 3):
super().__init__(width, height, bytespp)

Теперь атрибуты width, height и bytespp будут унаследованы из базового класса в дочерний класс.

20 Апр в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 706 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир