0

I have a an Enemy class, so my first object is:

enemy1 = Enemy()

Now I need to make a lot of enemies with names like this:

enemy1 = Enemy()
enemy2 = Enemy()
enemy3 = Enemy()
enemy4 = Enemy()

How can I make a loop that basically does this:

for i in range(1, 5)
    enemy + i = Enemy()

What's the simplest way to do this?

1 Answers1

2

You can use globals() function to get the dictionary of global namepsace, and then create your variables using string.

Example -

In [19]: class Enemy:
   ....:        pass
   ....:

In [20]: gbl = globals()

In [21]: for i in range(1,6):
   ....:     gbl['enemy' + str(i)] = Enemy()
   ....:

In [22]: enemy1
Out[22]: <__main__.Enemy at 0x4903a58>

In [23]: enemy2
Out[23]: <__main__.Enemy at 0x4903a90>

In [24]: enemy3
Out[24]: <__main__.Enemy at 0x4903b00>

In [25]: enemy4
Out[25]: <__main__.Enemy at 0x4903b70>

In [26]: enemy5
Out[26]: <__main__.Enemy at 0x4903be0>
Anand S Kumar
  • 88,551
  • 18
  • 188
  • 176