2016-04-18 39 views
0

funktionにグローバル変数を設定しようとしました。 グローバル変数は、私は他の値に設定したいと思い、私の機能の一つでKategorie = ''グローバル変数の設定方法

に設定されています:

elif methode=='show_select_dialog': 
writeLog('Methode: show select dialog', level=xbmc.LOGDEBUG) 
dialog = xbmcgui.Dialog() 
cats = [__LS__(30120), __LS__(30121), __LS__(30122), __LS__(30123), __LS__(30116)] 
ret = dialog.select(__LS__(30011), cats) 

if ret == 6: 
    refreshWidget() 
elif 0 <= ret <= 5: 
    writeLog('%s selected' % (cats[ret]), level=xbmc.LOGDEBUG) 

    global Kategorie 
    Kategorie = (cats[ret])   
    refreshWidget() 

私は、関数値が正しいrefreshWidgetで変数Kategorieをログインした場合(cats[ret] )、しかし後にその値がなくなって再び呼び出される関数refreshedWidgetは...

elif methode == 'get_item_serienplaner': 
sp_items = refreshWidget() 

私はに変数を変更した後ならば私はそれを必要としますcats[ret]

+0

はい、それは簡単なタイプミスだ...それはまた '' Kategorie'' – user294015

答えて

1

あなたの関数の外にvarを宣言する必要があり、関数内で使用するたびにglobal varNameを指定する必要があります。宣言時にあなたのグローバル変数名が表示されるので、カテゴリと、その後はカテゴリを使用してください。

0

Pythonは、グローバルというキーワードを明示的に指定することによって、グローバル変数を使用していることを本当に知っているかどうかを確認したいと考えています。

関数内でグローバル変数を使用するには、明示的に無視する必要があります。ここで

小さな例:私はあなたがglobal Kategorieにアクセスしたいが、あなたはglobal Kategoryへのアクセスを宣言しないことを宣言していることがわかり、あなたのケースで

myGlobalVar= 0 

def set_globvar(): 
    global myGlobalVar # Needed to modify global copy of globvar 
    myGlobalVar = 5 

def print_globvar(): 
    print myGlobalVar  # No need for global declaration to read value of myGlobalVar 

set_globvar() 
print_globvar()   # Prints 5 

。私はこれが単純なタイプミスか2つの異なる変数か分かりません。いずれにしても書く必要がありますglobal yourGlobalVariable

+0

は、はい、それはそれはまた、 '' Katagorie'' – user294015

+0

だから... ...私の答えはあなたの問題を解決しなかったことを意味タイプミスですか? – Stefano

+0

残念ながら...私は正しく説明しないかもしれません。しかし、私はそのプロンプトを解決する別の方法を見つけました。今私は '' WINDOW.setProperty() ''と '' WINDOW.getProperty() ''を使用して、私にとって完璧に動作します... – user294015

0

実際にはどのようなグローバルもPythonにありますか?はい、ファイルスコープ内の変数にアクセスするためのグローバルキーワードがあります。変数にアクセスする別の方法は、importステートメントを使用することです。 file.pyという名前のファイルがあるとします。あなたができる変数に書き込むために。他のファイル変数に簡単にアクセスできます。

import file 

anyVariable = 42 

# ... 
def aFunc(): 
    file.anyVarible = file.anyVarible + 1 
関連する問題