Питон - пример композитного подхода в ООП, объясните

Модератор: Модераторы разделов

awua
Сообщения: 594

Питон - пример композитного подхода в ООП, объясните

Сообщение awua »

Код: Выделить всё

class Room:
     def __init__(self,x,y,z):
          self.square = 2 * z * (x + y)
     def win_door(self, d,e, f,g, m=1,n=1):
          self.window = Win_Door(d,e)
          self.door = Win_Door(f,g)
          self.numb_w = m
          self.numb_d = n
     def wallpapers(self):
          self.wallpapers = self.square - self.window.square * self.numb_w - self.door.square * self.numb_d
     def printer(self):
          print ("Площадь стен комнаты равна ",str(self.square)," кв.м")
          print ("Оклеиваемая площадь равна: ", str(self.wallpapers), " кв.м")

Чем здесь является "self.window.square"? То есть что такое self - понятно. "square" - это атрибут класса. А "window" откуда взялся? Что это?
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Питон - пример композитного подхода в ООП, объясните

Сообщение watashiwa_daredeska »

awua писал(а):
18.01.2012 16:53
А "window" откуда взялся?
Из метода Room.win_door().

awua писал(а):
18.01.2012 16:53
Что это?
Это атрибут экземпляра класса.

awua писал(а):
18.01.2012 16:53
"square" - это атрибут класса.
Может быть и атрибутом экземпляра. И даже скорее всего.
Спасибо сказали: