在函数之外的引用变量,在其他类中

时间:2018-08-22 10:17:50

标签: python-3.x oop

我编写了一个程序,该程序实质上允许用户创建配置文件,然后稍后登录(在关闭代码之后)并继续将其数据保存到文本文件中。

class SignIn(tk.Frame):
def __init__(self, parent, controller):
    tk.Frame.__init__(self, parent)
    self.controller = controller
    self.configure(background="#FFC2B5")

    #Exit
    tk.Button(self, text="EXIT", command=EXIT, bg="#FFA795") .grid(column=0, row=0, sticky="nesw", pady=10, padx=10)

    #InputDetails
    input_details = tk.Label(self, text="Please input your first and last name to access your profile")
    input_details.grid(column=0, row=1)

    #FIRSTNAME
    first_name_label = tk.Label(self, text="First Name:")
    first_name_label.grid(column=0, row=2)

    first_name_entry = tk.Entry(self)
    first_name_entry.grid(column=1, row=2)

    #LASTNAME
    last_name_label = tk.Label(self, text="Last Name:")
    last_name_label.grid(column=0, row=3)

    last_name_entry= tk.Entry(self)
    last_name_entry.grid(column=1, row=3)

    def SignInConfirm():
        for file in os.listdir("/Users/140032/Desktop/SDD Major Project/"):
            filename = os.fsdecode(file)
            if filename.endswith(".txt"):
                completeName = os.path.join("/Users/140032/Desktop/SDD Major Project/", file)
                with open(completeName,'r') as inf:
                    dict_from_file = ast.literal_eval(inf.read())
                    if dict_from_file['First_Name'] == first_name_entry.get() and dict_from_file['Last_Name'] == last_name_entry.get():
                        print("Credentials Accepted. Welcome to 'The Mega Pop Quiz' " + dict_from_file["First_Name"] + "!")
                        global PermFile
                        PermFile = str(file)
                        print(PermFile)
                    else:
                        continue
                continue
            else:
                continue

        controller.show_frame("SubjectsPage")

    #CONFIRM
    confirm_button = tk.Button(self, text="SUBMIT", command=SignInConfirm )
    confirm_button.grid(column=2, row=4)

我在使用用户在代码的其他部分登录的文本文件时遇到麻烦。本质上,它会遍历每个文件,当找到与输入匹配的文件时,它将继续执行程序。 PermFile是用户登录的文件,以后我无法在函数外部(在单独的类中)找到引用该文件的方法。如果可以获取用户登录的文件名作为可以在其他类中使用的变量,则可以继续执行该程序的其余部分。

0 个答案:

没有答案