Пример
Пример класса и создание экземпляров класса:
class Player:
def __init__(self, name, type, fire_resistance):
self.name = name
self.type = type
self.fire_resistance = fire_resistance
p1 = Player("Игрок 1", "Warrior", False)
p2 = Player("Игрок 2", "Rogue", False)
p3 = Player("Игрок 3", "Mage", True)
При создании экземпляра класса передаются значения параметров. Параметры передаются в метод __init__
, где значения параметров сохраняются в атрибутах экземпляра объекта.
Внутри класса можно создавать такие атрибуты (свойства), которые будут одинаковы для любого экземпляра класса. Например, все игроки (воины, разбойники, маги) будут людьми. Поэтому можно создать атрибут на уровне класса, вместо того, чтобы создавать его в методе __init__
:
class Player:
race = "Человек"
def __init__(self, name, type, fire_resistance):
self.name = name
self.type = type
self.fire_resistance = fire_resistance
У каждого экземпляра теперь четыре свойства:
p1 = Player("Игрок 1", "Warrior", False)
p2 = Player("Игрок 2", "Rogue", False)
p3 = Player("Игрок 3", "Mage", True)
print(p1.race)
print(p2.race)
print(p3.race)
Внутри класса можно объявлять методы (отдельные участки кода для выполнения), внутри которых можно обращаться к значениям атрибутов с помощью ключевого слова self
:
class Player:
race = "Человек"
def __init__(self, name, type, fire_resistance):
self.name = name
self.type = type
self.fire_resistance = fire_resistance
def scream(self):
return f"I'am {self.name}!"
p1 = Player("Игрок 1", "Warrior", False)
p2 = Player("Игрок 2", "Rogue", False)
p3 = Player("Игрок 3", "Mage", True)
print(p1.scream())
print(p2.scream())
print(p3.scream())