如何在函数python之间传递变量

时间:2019-01-09 12:22:17

标签: python python-3.x function tkinter parameter-passing

这是我的两个功能:

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

我想将变量SelectedBadgeStrselectBadge()传递到selectScout()

变量a是tkinter树视图窗口小部件使用的内部变量。

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

我尝试过:

return SelectedBadgeStr

但是这不起作用。

该函数的调用者:

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

2 个答案:

答案 0 :(得分:0)

在定义函数SelectedBadgeStr之前,您是否声明selectBadge(a)为空字符串?

所以只需声明为:

SelectedBadgeStr = ''

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

应该可以。

答案 1 :(得分:0)

您还可以使用共享的全局变量:

  1. 在函数使用之外声明变量:

    SelectedBadgeStr = None

  2. 在函数开始处使用:

    global SelectedBadgeStr

每当在函数中使用变量时,都将访问全局变量