Как передать переменную между функциями Python - PullRequest
0 голосов
/ 09 января 2019

Вот мои две функции:

def selectBadge(a):
    curItem = SelectBadgeView.focus()
        inter_var = SelectBadgeView.item(curItem)
        ListValues = inter_var['values']
        print(ListValues)
        SelectedBadge.set("Selected Badge: "+str(ListValues[0]))
        SelectedBadgeStr=str(ListValues[0])
        return SelectedBadgeStr

def selectScout(a,SelectedBadgeStr):
print(a)
if SelectedPatrol.get()==("Selected Patrol: Please Select A Patrol"):
    tk.messagebox.showerror("ERROR","Please select a Patrol")
    return
if SelectedBadge.get()==("Selected Badge: Please Select A Badge"):
    tk.messagebox.showerror("ERROR", "Please select a Badge")
    return
print(SelectedBadgeStr)
return

Я хочу передать переменную SelectedBadgeStr из selectBadge() в selectScout().

Переменная a является внутренней переменной, используемой виджетом древовидной структуры tkinter.

a = <ButtonRelease event state=Button1 num=1 x=144 y=39>

Я пытался:

return SelectedBadgeStr

Однако это не сработало.

Функция вызывается:

SelectScoutView.bind('<ButtonRelease-1>', selectScout)

Ответы [ 2 ]

0 голосов
/ 09 января 2019

Вы также можете использовать общую глобальную переменную:

  1. Объявите переменную вне использования функций:

    SelectedBadgeStr = None

  2. В начале использования функций:

    global SelectedBadgeStr

Всякий раз, когда вы используете переменную внутри функций, вы получаете доступ к глобальной переменной

0 голосов
/ 09 января 2019

Вы объявили SelectedBadgeStr как например пустую строку перед определением функции selectBadge(a)?

Так что просто объявите это как:

SelectedBadgeStr = ''

def selectBadge(a): curItem = SelectBadgeView.focus() . . .

Это должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...