Привет. Учу пайтон. Знаю про классы, но пока решил обойтись без них.
Сделал простую функцию и теперь думаю, а нужно ли делать то же самое через классы и в чём принципиальная разница, если я итак получил то, что мне нужно?
Используя класс я создаю экземпляры класса - те же объекты, которые я создал и так. Мне понадобится 3к объектов с рандомным цветом и я использую эту функцию и обойдусь без классов.
Функция простая:
вызывает метод
draw у
pygame и рисует на экране кружки (просто для практики)
Но я вот сомневаюсь, что может классы как-то иначе работают, в них больше смысла, они более читаемые и понятные? Есть какое-то сомнение, которое не могу определить.
Я сейчас говорю только про конкретный простой пример, а не в целом, в контексте будущего использования и потенциала класса.
Стоит ли для таких простых примеров нагружать код, делать его менее читаемым, но принципиально использовать классы?
Так-то синтаксис классов для меня пока сложен и запутан, и в нём сложнее ориентироваться, чем в простых функциях из-за
self. super(), __init__.
На всякий случай сам код:
from importing_modules import *
from lists import list_colors
screen_width = 400
screen_height = 400
object_amount = 120
object_size = 10
screen_bg_color = (123, 104, 238)
# Рандомный цвет из списка colors_list
def get_random_color_(count):
count = count
random_color = random.choice(list_colors)
return random_color
# получение рандомного имени
def get_object_name(count):
count = count
name = names.get_first_name()
return name
# создание объектов
def object_Create(screen, count, screen_width, screen_height, size):
screen = screen
screen_width = screen_width
screen_height = screen_height
count = count
size = size
start_position = size
x_end_position = screen_width - size
y_end_position = screen_height - size
for i in range(count):
name = get_object_name(count)
color = get_random_color_(count)
random_pos_x = random.randint(start_position, x_end_position)
random_pos_y = random.randint(start_position, y_end_position)
pygame.draw.circle(screen, color, (random_pos_x, random_pos_y), size)
def start_screen():
while True:
pygame.init()
screen = pygame.display.set_mode((screen_width, screen_height))
screen.fill(screen_bg_color)
pygame.display.set_caption("Привет, ХАБР")
# (screen, count, screen_width, screen_height, size)
object_Create(screen, object_amount, screen_width, screen_height, object_size)
while True:
for event in pygame.event.get(): # Проверить очередь события
if event.type == pygame.QUIT: # Если его тип "закрыть"
sys.exit() # то "выход"
pygame.display.update()
start_screen()