python 3 - 在函数中赋值

时间:2012-04-07 01:53:46

标签: python function user-interface tkinter assign

嗨我有修补程序列表框调用的函数 所以我无法从中返回价值 基本上我有一个全局对象,我想在一个函数内分配它 我怎么能这样做

    rlink = ('http://stackoverflow', 'pastbin.com', 'unix.com')
    clink  = ' '
    # the function
    def listbinding(*args):
        idxs = reslinkbox.curselection()
        idx = int(idxs[0])

        clink = rlink[idx]

我想链接[idx]以分配给作为全局对象的clink 我无法调用该函数,tkinter listbox调用该函数,因此我无法从中返回clink

1 个答案:

答案 0 :(得分:3)

使用global关键字。

 rlink = ('http://stackoverflow', 'pastbin.com', 'unix.com')
 clink  = ' '
 def listbinding(*args):
     global clink
     idxs = reslinkbox.curselection()
     idx = int(idxs[0])

     clink = rlink[idx]

<obligitory>使用像这样的全局变量通常不是一个坏主意,因为它会模糊整个模块中的程序状态,而不是将其分解为漂亮的离散块。防止这是名称空间的全部目的。许多计算机科学家花了很多年的辛苦,吃力不讨好的工作来为你带来这些知识。</obligitory>