Тааааак. Смотрите. Где у Вас происходит процесс рисования?
Какие события его вызывают?
#
type_ = "polygon"
#
def change_style_to(event):
global type_
type_ = event.widget["text"]
print("type_ is changed on: {}".format(type_))
#
def draw(event):
global type_
global toolsThickness
#
method = {
"polygon": event.widget.create_polygon,
"oval": event.widget.create_oval,
}[type_]
#
if b1 == "down":
global xold, yold
if xold is not None and yold is not None:
method(xold,
yold,
event.x,
event.y,
width = toolsThickness,
outline="black")
#
but1=Button(win3,text="oval")
but1.bind("<Button-1>", change_style_to)
but1.pack()
#
but2=Button(win3,text="polygon")
but2.bind("<Button-1>", change_style_to)
but2.pack()
#
drawing_area = Canvas(win,bg="white",width=600,height=400)
drawing_area.bind("<Motion>", motion)
drawing_area.bind("<ButtonPress-1>", b1down)
drawing_area.bind("<ButtonRelease-1>", b1up)
drawing_area.pack()
Подумайте над тем, что я здесь написал и прокомментируйте код. Ну и код нужно оборачивать в теги, а не прикладывать в файле.