Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我使用这样的全局变量是否犯了错误?_Python_Tkinter - Fatal编程技术网

Python 我使用这样的全局变量是否犯了错误?

Python 我使用这样的全局变量是否犯了错误?,python,tkinter,Python,Tkinter,我试图使用全局变量,以便在代码开始时声明它们,就像在C#中一样。但是,当我在一个函数中编辑它们,并尝试在另一个函数中调用它时,它会抛出一个错误,表示未声明该变量 这是我声明变量的地方: from tkinter import * import os global Name global Wmain global directory global Username global Password global Code 这是我更改目录变量的位置: def NameGet(): Nam

我试图使用全局变量,以便在代码开始时声明它们,就像在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()

现在我觉得我要么犯了一个真正的新手错误,要么我的代码有问题。有什么想法吗

要使用全局变量,需要在方法内部显式设置它

例如:

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

func()

无论您想在函数中使用什么变量,您都需要在开始时添加
global var
(其中var是您想要更改的var)。与其使用这么多全局变量,我建议使用一个类来管理与同一任务相关的不同方法。如果是这种情况,那么最好将它们粘贴到自己的文件中,然后导入它们。如果您需要更改这些值,那么您可能希望将它们包装到一个单例类中。当我尝试将global放在前面时,因为我在语句中使用了global,我假设它会抛出一个错误。是否有人能够向我展示一个基本类,我可以将其用于结构,因为我从未深入到类中