Protože python prohledává lokální proměnné a když tam nenajde, tak zkusí globální - které uvnitř funkce musí být deklarované jako global, ale vně funkce jsou globální automaticky všechny vytvořené:
$ python
Python 2.7.13 (default, Jan 12 2017, 17:59:37)
>>> def b():
... print a
...
>>> b()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in b
NameError: global name 'a' is not defined
>>> a = 5
>>> b()
5
>>>
Python dokáže ve funkcích přistupovat ke globálním proměnným, které se čtou. To global langs je tam v podstatě taky zbytečné. U zápisu to je něco jiného, protože x=10 by vytvořilo lokální proměnnou, zde je tedy global x nutností (ale nepoužíval bych to, to je dost čuňárna :-)
Ahoj, díky!
Seznam témat pro Ttk je dostupný tady: http://wiki.tcl.tk/48689
Jenže - i když se u těch témat například píše GTK, tak jsou to jen ostylované widgety Ttk, ne nativní GTK nebo Qt widgety, takže se aplikace může chovat trošku odlišně. U Macu a Windows je to trošku jiné, ale bohužel Linux dost doplácí na to, že nemá standardní widgetset.