我正在创建一个运动队数据库,其中存储有关运动队的信息。我在其中一种方法中遇到的问题之一是无法防止同一对象两次附加到列表中。我不希望用户两次添加相同的信息,但我不完全确定如何解决此问题。
我在 Python Tkinter 下工作来创建这个程序。
import tkinter as tk
from tkinter import ttk
from tkinter import messagebox
allTeamlist = []
class Team:
def __init__(self, team, coach):
self.team = team
self.coach = coach
self.studentsinTeam = []
class MainScreen:
def __init__(self):
self.mainscreen = tk.Tk()
self.mainscreen.title("GUI")
self.mainscreen.geometry("700x400")
#####Team Buttons##########
heading3 = tk.Label(self.mainscreen, text= "Team", foreground = "Red", font=("Arial", 10))
heading3.pack()
button6 = tk.Button(self.mainscreen, text = "Add New Team", command= self.ShowScreen6)
button6.pack()
def OpenWindow(self):
tk.mainloop()
def ShowScreen6(self):
self.mainscreen.destroy()
screen6 = AddTeamScreen()
class AddTeamScreen:
def __init__(self):
self.Tscreen1 = tk.Tk()
self.Tscreen1.title("Add Team")
self.Tscreen1.geometry("700x400")
self.getTeam = tk.StringVar()
self.getCoach = tk.StringVar()
self.teamlabel = tk.Label(self.Tscreen1, text = "Add a new Team")
self.teamlabel.pack()
self.teamentry = tk.Entry(self.Tscreen1, textvariable= self.getTeam)
self.teamentry.pack()
self.coachlabel = tk.Label(self.Tscreen1, text= "Coach")
self.coachlabel.pack()
self.coachentry = tk.Entry(self.Tscreen1, textvariable = self.getCoach)
self.coachentry.pack()
self.addbutton = tk.Button(self.Tscreen1, text = "Add Team", command = self.addingteammethod)
self.addbutton.pack()
def addingteammethod(self):
addTeam = self.getTeam.get()
addCoach = self.getCoach.get()
newTeamtoAdd = Team(addTeam, addCoach)
if newTeamtoAdd in allTeamlist:
messagebox.showerror("Error", "Exists")
elif newTeamtoAdd not in allTeamlist:
allTeamlist.append(newTeamtoAdd)
messagebox.showinfo("SUCCESS", "ADDED")
print(allTeamlist)
mainscreen = MainScreen()
mainscreen.OpenWindow()
我是新的 OOP 和 Tkinter 编程,所以我还在学习!如何防止这种情况发生?