0

やあ私はティンカーリストボックスによって呼び出される関数を持っているので、
基本的にそこから値を返すことはできません。私はグローバルオブジェクトを持っていて、それを関数内に割り当てたいのです。

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

        clink = rlink[idx]

グローバルオブジェクトであるclinkにrlink [idx]を割り当てたい関数を呼び出すことができず、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 に答える