import datetime
class Team:
# Private class fields
__id = 0 # A private class field that initializes to zero, used for generating unique IDs
__date = None # A private class field that stores the date the team object was created
__name = "" # A private class field that stores the name of the team
__type = "" # A private class field that stores the type of the team (boys/girls)
__fee_paid = False # A private class field that stores whether the team has paid their fees
__fee = 0 # A private class field that stores the amount of fees to be paid by the team
# Constructor method to create new Team object with the given id, date of creation,
# name, type, fee status, and fee amount paid
def __init__(self, name, team_type, fee_paid, fee):
self.__date = datetime.date.today() # Set the date the team was created to today's date
self.__name = name # Set the name of the team
self.__type = team_type # Set the type of the team
self.__fee_paid = fee_paid # Set whether the team has paid their fees
self.__fee = fee # Set the fee to be paid by the team
self.__class__.__id += 1 # Increment the ID counter
self.__id = self.__class__.__id # Set the ID of the team to the current ID counter value
# Defining the accessor methods to return the attributes of Team objects
@property
def id(self):
return self.__id
def get_date(self):
return self.__date
def get_name(self):
return self.__name
def get_type(self):
return self.__type
def get_fee_paid(self):
return self.__fee_paid
def get_fee(self):
return self.__fee
# Defining the mutator methods to set the attributes of Team object
def set_name(self, name):
self.__name = name
def set_type(self, team_type):
self.__type = team_type
def set_fee_paid(self, fee_paid):
self.__fee_paid = fee_paid
def set_fee(self, fee):
self.__fee = fee
# String representation methods for listing the team details
def __str__(self):
return f"Team ID: {self.__id}\nDate created: {self.__date}\nTeam name: {self.__name}\nTeam type: {self.__type}\nFee paid: {self.__fee_paid}\nFee paid: {self.__fee}\n"
def __repr__(self):
return self.__str__()