Entrada Tkinter não mostrando o valor atual da variável de texto

Considere este código:

from tkinter import *
from tkinter.ttk import *

tk=Tk()

def sub():
    var=StringVar(value='default value')

    def f(): pass

    Entry(tk,textvariable=var).pack()
    Button(tk,text='OK',command=f).pack()

sub()
mainloop()

Esperamos o valor devar aparece na entrada, mas na verdade não.

O estranho é que, se eu colocar a afirmaçãovar.get() na função de retorno de chamada do botão, o valor devar vai aparecer.

Isso é um bug causado por algum tipo de otimização de variável local no Python? E o que posso fazer para garantir que o valor detextvariable sempre aparecerá na entrada?

Por favor, me desculpe pelo meu inglês ruim.

questionAnswers(1)

yourAnswerToTheQuestion