2017-01-13 7 views
0

Так что я действительно свежий в python и, возможно, над головой. Я создал флажок tkinter внутри mainloop моего gui, который должен вызвать функцию снаружи (aulocale1). При щелчке на флажке я получаю глобальное имя aulocale1 не определено ошибка. Я знаю, что это легко решить, но я попытался найти его, и результаты на самом деле не имеют смысла. Мои извинения за пост, поскольку я знаю его что-то глупое.Вызов функции из флажков

aulocale = IntVar() 
aucheck = Checkbutton(self.master, variable=aulocale, onvalue=1, offvalue=0, text="AU",command=aulocale1) 
aucheck.pack(in_=top, side=LEFT) 

Функция:

def aulocale1(self,master): 
    self.master.base.replace = "http://www.adidas.com.au/on/demandware.store/Sites-adidas-AU-Site/en_AU" 
    self.master.replace = ('','AU') 
    self.master.headers = ('REPLACETHISPLIZZZ','en-AU,en;q=0.8') 

ответ

0

Похоже aulocale1 не глобальная функция, но метод в классе, так что вам нужно self

command=self.aulocale1 

, если этот метод и флажок в том же классе

или

command=some_object.aulocale1 

если метод в другом объекте some_object

+0

Oh woow, что все это было. On идет еще 500 ошибок, чтобы сгладить. Очень ценю ваш быстрый ответ !!!. Функция, которую я пытаюсь вызвать, не заменяет base = "http://www.urlhere.com.au" в моем другом скрипте. Я получаю NameError: глобальное имя «base» не определено ошибкой. Любая идея как это преодолеть? –

+0

что такое 'base'? Является ли эта локальная переменная внутри некоторой функции или класса? Тогда вы не можете его изменить. Если переменная в классе, вам нужно 'self.base'. Если это переменная в функции, вам может понадобиться функция 'global'. Если это глобальная переменная и вы выполняете 'import script', то это' script.base'. Все зависит от вашего кода. – furas

+0

Base - это локальная переменная внутри другого скрипта. Этот скрипт импортируется в тот, с которого я делаю изменение. Я предполагаю, что script.base - это то, что я ищу? –

Смежные вопросы