Может ли кто-нибудь научить меня, как улучшить мой код и как исправить ошибки и ошибки?

#python

#python

Вопрос:

Итак, я пытаюсь создать очень эпический генератор тренировок с различными уровнями сложности, но я чувствую, что мой код очень и очень плох, может кто-нибудь, возможно, дать некоторое представление о том, как сделать лучше, пожалуйста, и спасибо.

Также, когда я тестирую в своем терминале, он говорит, что это не работает? Там что — то говорится о Файле » .workoutgenerator.py «, строка 77, в self1 = self(), ошибка имени генератора(): имя «self» не определено

Может кто-нибудь, пожалуйста, помогите Я новичок в программировании и нуждаюсь в помощи в совершенствовании этого продукта.

Извините, мой английский не очень беглый.

 from exercises import *

class Generator(object):
    def get_difficulty(self):
        difficulty = input("Which exercise difficulty would you like to do? (easy, medium, hard)n>>> ")
        while True:
            if "easy" in difficulty:
                self.sets = "1-3"
                self.target_reps = "1-6"
                break
            elif "medium" in difficulty:
                self.sets = "4-6"
                self.target_reps = "7-13"
                break
            elif "difficult" in difficulty:
                self.sets = "7-10"
                self.target_reps = "13-19"
                break
            else:
                print ("Please enter easy, medium, hard.")
                difficulty = input("Which exercise difficulty would you like to do? (easy, medium, hard)n>>> ")
                difficulty = difficulty.lower()
        return self.sets, self.target_reps

    def workout_title(self):
        if difficulty == "easy":
            print("Easy Workout")
        elif difficulty == "medium":
            print("Medium Workout")
        elif difficulty == hard:
            print("Hard Workout")

    def generate_easy(self):
        Generator.title("Easy Workout")
        Generator.section("Warmup")
        Generator.print_exercises(self, warmup_exercises)
        Generator.section("Workout")
        Generator.print_exercises(self, easy_exercises)
        Generator.print_exercises(self, easy_exercises)
        Generator.print_exercises(self, easy_exercises)
        Generator.section("Cooldown")
        Generator.print_exercises(self, cooldown_exercises)

    def generate_medium(self):
        Generator.title("Easy Workout")
        Generator.section("Warmup")
        Generator.print_exercises(self, warmup_exercises)
        Generator.print_exercises(self, warmup_exercises)
        Generator.section("Workout")
        Generator.print_exercises(self, easy_exercises)
        Generator.print_exercises(self, medium_exercises)
        Generator.print_exercises(self, medium_exercises)
        Generator.print_exercises(self, medium_exercises)
        Generator.section("Cooldown")
        Generator.print_exercises(self, cooldown_exercises)

    def generate_hard(self):
        Generator.title("Easy Workout")
        Generator.section("Warmup")
        Generator.print_exercises(self, warmup_exercises)
        Generator.section("Workout")
        Generator.print_exercises(self, easy_exercises)
        Generator.print_exercises(self, medium_exercises)
        Generator.print_exercises(self, difficult_exercises)
        Generator.print_exercises(self, difficult_exercises)
        Generator.print_exercises(self, difficult_exercises)
        Generator.section("Cooldown")
        Generator.print_exercises(self, cooldown_exercises)

class Engine(object):
    def start(self):
        self.get_difficulty()
        self.create_workout()
        log.close()

self1 = self(), Generator()
Engine.start(self1)```
 

Комментарии:

1. Что вы пытаетесь сделать self1 = self(), Generator() ? Вы имеете в виду просто self1 = Generator() ? Кроме того, как только код полностью заработает, он должен быть в Code Review , а не здесь.

2. Глядя на код, вы можете захотеть сделать шаг назад и сначала поработать над более простым class проектом. Вы делаете несколько странных вещей, которые предполагают, что вы могли бы извлечь выгоду из более простого проекта. Engine.start(self1) например, это не имеет особого смысла (это может работать в некоторых сложных контекстах, но это, конечно, не то, что вы хотите здесь).