Столкнулся с проблемой. У меня есть 10-20 объектов одного класса и мне нужно чтобы я одной строчкой вызывал метод из всех объектов данного класса.
Вот код где мне это нужно
import tkinter as tk
import sqlite3 as sql
oval_col_vo = 10
root = tk.Tk()
canvas = tk.Canvas(root)
canvas.pack(fill="both", expand=True)
class Oval():
def __init__(self, event, canvas):# рисует овал
self.canvas = canvas
self.x1 = event.x - 50
self.y1 = event.y - 50
self.x2 = event.x + 50
self.y2 = event.y + 50
self.shape = self.canvas.create_oval(self.x1, self.y1, self.x2, self.y2)
#self.canvas.bind('<B1-Motion>', self.move_oval)
def move_oval(self, event):# перемещает овал
if (self.x1 <= event.x ) and (self.x2 >= event.x) and (self.y1 <= event.y) and (self.y2 >=event.y):# проверка находится ли курсор мышки
self.x1 = event.x - 50 #там где находится овал чтобы переместить его
self.y1 = event.y - 50
self.x2 = event.x + 50
self.y2 = event.y + 50
self.canvas.coords(self.shape, self.x1, self.y1, self.x2, self.y2)
def oval(event):
global oval_col_vo
if oval_col_vo == 1:
oval1 = Oval(event, canvas)
oval_col_vo = oval_col_vo-1
if oval_col_vo == 2:
oval2 = Oval(event, canvas)
oval_col_vo = oval_col_vo-1
if oval_col_vo == 3:
oval3 = Oval(event, canvas)
oval_col_vo = oval_col_vo-1
if oval_col_vo == 4:
oval4 = Oval(event, canvas)
oval_col_vo = oval_col_vo-1
if oval_col_vo == 5:
oval5 = Oval(event, canvas)
oval_col_vo = oval_col_vo-1
if oval_col_vo == 6:
oval6 = Oval(event, canvas)
oval_col_vo = oval_col_vo-1
if oval_col_vo == 7:
oval7 = Oval(event, canvas)
oval_col_vo = oval_col_vo-1
if oval_col_vo == 8:
oval9 = Oval(event, canvas)
oval_col_vo = oval_col_vo-1
if oval_col_vo == 9:
oval9 = Oval(event, canvas)
oval_col_vo = oval_col_vo-1
if oval_col_vo == 10:
oval10 = Oval(event, canvas)
oval_col_vo = oval_col_vo-1
else:
print("pass")
print(oval_col_vo)
canvas.bind('<Button-3>', oval)
root.mainloop()
нужно из всех объектов вызвать метод move_oval