dmitry_79
При импорте библиотеки PIL : from PIL import Image, ImageDraw
ImageDrive - это класс или модуль?
>>> import PIL
>>>
>>> import PIL.ImageDraw
>>>
>>> PIL.ImageDraw
<module 'PIL.ImageDraw' from '/usr/lib64/python3.6/site-packages/PIL/ImageDraw.py'>
>>>
>>> PIL.ImageDraw.ImageDraw
<class 'PIL.ImageDraw.ImageDraw'>
>>>
>>> PIL.ImageDraw.Draw
<function Draw at 0x7f67f7389f28>
>>>
dmitry_79
Есть желание попрактиковаться в ООП.
ООП - это не то, что ты думаешь. Сначала отыскиваются абстракции, затем абстракции преобразуются в объекты, затем объекты группируются в классы, затем классы выстраиваются в единую иерархию классов, затем единая иерархия классов разбивается на уровни абстракции. Если получилось всё это сделать, значит правильная иерархия найдена; если не получилось всё это сделать, значит надо по новой всё проделать, чтобы получить в конечном итоге правильную иерархию. Если же ты думаешь, что ООП - это просто записать класс и пронаследоваться от него, то такое “ООП” тебе просто ничего не даст ни на малых программах, ни на больших.
dmitry_79
Т.е если дочерний класс создать пустым
Нет такого понятия “дочерний класс”, есть понятие подкласс. Подкласс/субкласс и надкласс/суперкласс. Есть также базовый класс, который находится на самом верху иерархии классов и не имеет суперкласса. Есть также неправильное толкование терминов, которое породил Страуструп. Из-за этого есть путаница в понятиях, потому что многие из них одноимённые, а по смыслу разные.
dmitry_79
Т.е если дочерний класс создать пустым то его экземпляры должны вести себя точно так же как экземпляры родительского класса.
Классы должны только расширять классы. Таким образом, все экземпляры подклассов по своей структуре и своему поведению являются экземплярами классов, от которых наследуются эти подклассы. Экземпляры подклассов могут только иметь дополнительные структурные элементы и дополнительное поведение.
dmitry_79
Первая ячейка в колабе использует для рисования ImageDraw. Вторая - новый класс NewImageDrive.
Ты лучше сбрось код сюда. Как-то не хочется в Google заходить, чтобы это было возможно запускать или редактировать. Так-то он тебе говорит, что ты пытаешься в классе найти Draw, которая является функцией в модуле.
FUNCTIONS
Draw(im, mode=None)
A simple 2D drawing interface for PIL images.
:param im: The image to draw in.
:param mode: Optional mode to use for color values. For RGB
images, this argument can be RGB or RGBA (to blend the
drawing into the image). For all other modes, this argument
must be the same as the image mode. If omitted, the mode
defaults to the mode of the image.