2017-07-12 9 views
0

私は関数の中でそれらを編集して、別の関数で呼び出してみるとC#のように、あなたのコードの始めにそれらを宣言するためにグローバル変数を使用しようとしています。宣言されていない?このようなグローバル変数を使用して間違いを犯していますか?

私は変数を宣言する場所です:

from tkinter import * 
import os 

global Name 
global Wmain 
global directory 

global Username 
global Password 
global Code 

私は、ディレクトリの変数を変更する場所です:私はエラーを取得していますどこ

def NameGet(): 
    Name = NameEntry.get() 
    directory = ('C:\\Users\\Bradley\\Desktop\\Log In system\\Members\\' + Name + '.txt') 
    CheckFile(Name) 

これは、次のとおりです。

def SignUpFinished(): 
    with open(directory, W) as F: 
     F.write(Username) 
     F.write(Password) 
     F.write(Code) 
     F.close() 

今私は本当に初心者のミスをしているか、自分のコードで正しく動作していないと感じています。何か案は?

+0

あなたが関数内で使用したいどのような変数を、あなたは(varは、変更したいVARである)開始時に 'グローバルvar'を追加する必要があります。非常に多くのグローバル変数を使用する代わりに、クラスを使用して同じタスクに関連するさまざまなメソッドを管理することをお勧めします。 – SneakyTurtle

+0

例では、グローバルが定数であるようです。そうであれば、それを自分のファイルに張り付けてインポートするのが最善でしょう。値を変更する必要がある場合は、おそらくそれらをシングルトンクラスにラップしたいと思うでしょう。 – Dan

+0

私は文章でそれを使用しているので、私はグローバルに配置しようとすると、私はそれがエラーをスローすると誰かが私がクラスに分割されたことがないように構造体に使用できる基本クラスを表示することができるだろう –

答えて

0

グローバル変数を使用するには、メソッド内に明示的に設定する必要があります。例えば

a=4 
def func(): 
    global a 
    print(a) 

func() 
関連する問題