Magic Code, соответственно переменные класса - это как параметры, свойства которыми будет обладать объект. Соответственно у каждого экземпляра свои переменные(то что начитается с self). а переменная enemy - из другой области видимости, вы его передаете при вызове метода spell экземпляра класса Mag.
https://docs.python.org/3/tutorial/datastructures....