【问题标题】:python 3 - assigning the value in functionpython 3 - 在函数中赋值
【发布时间】:2012-04-07 01:53:46
【问题描述】:

嗨,我有一个由 tinker listbox 调用的函数 所以我不能从中返回值
基本上我有一个全局对象,我想在一个函数中分配它 我该怎么做呢

    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

【问题讨论】:

    标签: python function user-interface tkinter assign


    【解决方案1】:

    使用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>

    【讨论】:

    • 感谢 aaronasterling 我必须删除 clink = ' ' 才能使其正常工作
    • @aaronasterling:恕我直言,建议替代方案也是强制性的。
    • @martineau,我同意。但是我不知道 gui 编程,当然也不知道 tkinter。因此,我不知道数据来自哪里或最终需要在哪里结束。即使我知道 tkinter,似乎也没有足够的信息来推断这些事情。如果提问者有兴趣,他/她应该提供更多信息并询问。
    • @aaronasterling:好的,你得到了通行证......但这毕竟是,所以我会为你指出至少一个例子Python 2.7.2 global variables + tkinter给你。 ;-)
    猜你喜欢
    • 1970-01-01
    • 2015-05-08
    • 2021-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-17
    • 2021-03-13
    相关资源
    最近更新 更多