Python OOP – создать класс или построить в main.py (Udemy 100 дней Python)?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Python OOP – создать класс или построить в main.py (Udemy 100 дней Python)?

Сообщение Anonymous »

Похоже, что идея этого курса заключается в том, что ООП вращается вокруг организации кода, а не создания классов с целью повторяемости отклонений.
Например: День 23 — это игра-лягушка. Инструктор создает класс CarManager, который снова и снова генерирует один и тот же автомобиль. Кажется, нет никакой причины, кроме организации кода, по которой функции CarManager не могли быть помещены в файл main.py.
Вопрос:
  • Я пытаюсь различить и понять, почему класс должен быть создан, когда атрибуты и функции вполне могут быть размещены в main.py без разницы в количестве код написан. Следует ли создавать класс просто для организации и наведения порядка в вашем main.py?
В примере с игрой Frogger я применил другой подход к тому, что инструктор сделал (код ниже). Я создал класс Car с входными данными для размера и скорости. Затем в коде main.py я сгенерировал 4 разных транспортных средства, используя класс Car (мотоцикл, легковой автомобиль, грузовик, полуприцеп) с разным размером и скоростью. Разве это не более подходящее использование ООП в Python?
Класс Car:
from turtle import Turtle
import random

CAR_COLORS = ["blue", "red", "black", "green", "pink", "orange"]

class Car:
def __init__(self, size1, speed1):
self.car_pieces = []
self.car_list = []
self.create_car(size1)
self.speed = speed1

def create_car(self, car_size):
color2 = random.choice(CAR_COLORS)
xcor = random.randrange(310, 350, 20)
ycor = random.randrange(-235, 226, 40)
for i in range(car_size):
car_piece = Turtle()
car_piece.color(color2)
car_piece.shape("square")
car_piece.penup()
car_piece.setposition(xcor, ycor)
self.car_pieces.append(car_piece)
xcor += 20

def car_move(self):
for i in range(len(self.car_pieces)):
self.car_pieces.backward(self.speed)

main.py
#Car generation
car_list = []
motorcycle_speed = 12
car_speed = 5
truck_speed = 3
semi_speed = 1
def car_generator():
car_options = ["motorcycle", "car", "truck", "semi"]
car_choice = random.choice(car_options)
random_chance = random.randint(1,6)
if random_chance == 1:
if car_choice == "motorcycle":
motorcycle_object = Car(1, motorcycle_speed)
car_list.append(motorcycle_object)
elif car_choice == "car":
car_object = Car(2, car_speed)
car_list.append(car_object)
elif car_choice == "truck":
truck_object = Car(3, truck_speed)
car_list.append(truck_object)
elif car_choice == "semi":
semi_object = Car(4, semi_speed)
car_list.append(semi_object)
else:
pass


Подробнее здесь: https://stackoverflow.com/questions/792 ... -of-python
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Моя змея не движется влево, как это происходит в уроке. (Udemy 100 Days of Code Python Bootcamp, урок 189) [закрыто]
    Anonymous » » в форуме Python
    0 Ответы
    40 Просмотры
    Последнее сообщение Anonymous
  • OOP PHP класс Cally Function1 ()-> function2 () из одного вызова в линии
    Anonymous » » в форуме Php
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Как я могу использовать пакет oop-python на Android?
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Как я могу использовать пакет oop-python на Android?
    Anonymous » » в форуме Android
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Стили общения Push и Pull в oop: почему стиль Push не является гибким?
    Anonymous » » в форуме JAVA
    0 Ответы
    72 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»