0

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

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

        clink = rlink[idx]

我想将 rlink[idx] 分配给 clink,这是一个全局对象,我无法调用该函数,tkinter 列表框调用该函数,因此我无法从中返回 clink

4

1 回答 1

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>

于 2012-04-07T01:55:15.193 回答