Skip to content

Instantly share code, notes, and snippets.

@sunmeat
Created February 16, 2026 09:51
Show Gist options
  • Select an option

  • Save sunmeat/6ada00a9010a4d092536209add4a8543 to your computer and use it in GitHub Desktop.

Select an option

Save sunmeat/6ada00a9010a4d092536209add4a8543 to your computer and use it in GitHub Desktop.
атрибути класу (статичні поля) в пайтон
class Monster:
# це і є "статичне поле" (атрибут класу)
count = 0
def __init__(self, health=100, attack=10, mana=50):
# ініціалізація екземплярних (звичайних) атрибутів
self.health = health
self.attack = attack
self.mana = mana
# зміна спільної для всіх екземплярів змінної
Monster.count += 1
print(f"створено монстра #{Monster.count}", end="")
if health != 100 or attack != 10 or mana != 50:
print(f" з параметрами h={health}, a={attack}, m={mana}")
else:
print()
@classmethod
def get_count(cls):
"""статичний/класовій метод для отримання кількості монстрів"""
return cls.count
def print_info(self):
print(f"монстр #{Monster.count}: "
f"здоров'я = {self.health}, "
f"атака = {self.attack}, "
f"мана = {self.mana}")
####################################################################################
if __name__ == "__main__":
monsters = []
# створення кількома різними способами
monsters.append(Monster()) # без параметрів
monsters.append(Monster(health=150)) # тільки здоров'я
monsters.append(Monster(200, 20, 100)) # усі параметри
print("\nінформація про всіх монстрів:")
for monster in monsters:
monster.print_info()
print(f"\nзагальна кількість монстрів: {Monster.get_count()}")
# або так само працює: Monster.count
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment