繁体   English   中英

如何将类中的变量变成全局变量以备后用?

[英]How to make variable in the class into a global variable for later use?

我需要将类中的局部变量变成全局变量。 如果我尝试在全局类中创建局部变量,则会出错。 正如您在代码中看到的,我想让temp_usernametemp_username1成为一个全局变量以供以后使用,但该类不允许我这样做。

class TwoPlayers:
    def __init__(self, master):
        self.master = master
        self.top_frame = tk.Frame(self.master, relief="solid")
        self.top_frame.pack(side="top", fill="none", expand=True)
        self.label_1 = tk.Label(self.top_frame, text="Player1 Name: ")
        self.label_1.grid(row=0, column=0, sticky="w", padx=5, pady=5)
        self.label_1 = tk.Label(self.top_frame, text="Player2 Name: ")
        self.label_1.grid(row=1, column=0, sticky="w", padx=5, pady=5)
        self.username_entry = tk.Entry(self.top_frame, width=20)
        self.username_entry .grid(row=0, column=1, padx=5, pady=5)
        self.username_entry1 = tk.Entry(self.top_frame, width=20)
        self.username_entry1 .grid(row=1, column=1, padx=5, pady=5)
        self.save_button = tk.Button(self.top_frame, text="Save", command=lambda: self.read_username())
        self.save_button.grid(row=4, column=0, columnspan=2, pady=20)
        self.name_valid = False
        self.username = None

    def read_username(self):
        temp_username = self.username_entry.get()
        temp_username1 = self.username_entry1.get()
        if temp_username == '':
            print("No valid name")
            return
        else:
            self.name_valid = True
            self.username = temp_username
            self.username1 = temp_username1
            print(temp_username) #Shows the input name of the player can be deleted later
            print(temp_username1)
            self.master.destroy()

不要只使用 temp_username,而是使用静态变量,即打印函数中的 TwoPlayers.temp_username 和 TwoPlayers.temp_username1。

也可以使用self.temp_username 和self.temp_username1,表示实例变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM