self.square1 = Square(тут параметры квадрата)
self.square2 = Square(параметры)
self.canva.delete("all")
self.draw_square(self.square1)
self.draw_square(self.square2)
или использовать списокself.squares = [
Square(параметры),
Square(параметры),
Square(параметры),
]
self.canva.delete("all")
for sq in self.squares:
self.draw_square(sq)
Они позволяют вызывать функцию, когда их значение изменяется. Это позволяет привязать переменную к элементу управления (скажем к полю ввода) и либо реагировать на его изменение, либо автоматически менять его содержимое при изменении переменной. Пример работы:
Напоследок, может оказаться удобнее использовать не DoubleVar а StringVar, и преобразовывать значение из строки в число самому перед расчётом. Больше операций, но больше контроль над тем, числа в каком формате принимает программа (например, можно добавить поддержку модуля locale).