title: Is there a cleaner more pythonic way to create class instances within class instances?
body: <p>I am programming a game with discord py. Each game have 10 players divided into 5 teams.</p>
  <p>I don't really need:</p>
  <ul>
  <li>A reference for each player, so the self.BlackHero etc properties are unnecesary...</li>
  </ul>
  <p>But I do need:</p>
  <ul>
  <li>Initiate 10 Player instances.</li>
  <li>Initiate 5 Team instances, containing the 10 Player instances.</li>
  <li>A list containing the 12 Player instances.</li>
  </ul>
  <p>I was wondering if there's a more elegant way to write the code below? Thanks!</p>
  <pre><code>class Game:
    def __init__(self, title):
      self.title = title
      self.round = 1
      self.status = 'Registration'
      self.winners = ''
      self.deadline = ''
      self.registrations = {}
      self.chests = []
      self.monsters = []
      
      self.BlackHero = Player('BlackHero.png', 'black-team', 'hero', 'J6')
      self.BlackWitch = Player('BlackWitch.png', 'black-team', 'witch', 'J5')
      self.BlueHero = Player('BlueHero.png', 'blue-team', 'hero', 'A7')
      self.BlueWitch = Player('BlueWitch.png', 'blue-team', 'witch', 'A8')
      self.GreenHero = Player('GreenHero.png', 'green-team', 'hero', 'F9')
      self.GreenWitch = Player('GreenWitch.png', 'green-team', 'witch', 'G9')
      self.RedHero = Player('RedHero.png', 'red-team', 'hero', 'B0')
      self.RedWitch = Player('RedWitch.png', 'red-team', 'witch', 'A0')
      self.YellowHero = Player('YellowHero.png', 'yellow-team', 'hero', 'I0')
      self.YellowWitch = Player('YellowWitch.png', 'yellow-team', 'witch', 'H0')
  
      self.players = [
        self.BlackHero,
        self.BlackWitch,
        self.BlueHero,
        self.BlueWitch,
        self.GreenHero,
        self.GreenWitch,
        self.RedHero,
        self.RedWitch,
        self.YellowHero,
        self.YellowWitch
      ]
      
      self.teams = {
        'black-team':Team(self.BlackHero, self.BlackWitch),
        'blue-team':Team(self.BlueHero, self.BlueWitch),
        'green-team':Team(self.GreenHero, self.GreenWitch),
        'red-team':Team(self.RedHero, self.RedWitch),
        'yellow-team':Team(self.YellowHero, self.YellowWitch)
      }
  
  class Player:
    def __init__(self, image, team, role, pos):
      self.username = None
      self.user_id = None
      self.image = image
      self.team = team #red/blue/green/yellow/black
      self.role = role #witch/hero
      self.position = pos
      self.new_position = pos
      self.old_target = None
      self.new_target = None
      self.has_sword = False
      self.is_frozen = False
      self.has_moved = False
      self.will_die = False
      self.status = 'ALIVE' #alive/dead
  
  class Team:
    def __init__(self, hero, witch):
      self.hero = hero #username
      self.witch = witch #username
      self.items = []
      self.status = 'ALIVE'
  </code></pre>
  <p>It's functional though...</p>