Задать вопрос
@byby56

Обязательные аргументы в инициализации класса, зачем они?

Всем привет, программирую 2 недели и не до конца понял ООП/классы
Вот есть класс с парой аргументов при инициализации.
В конце я делаю экземпляр класса с аргументами.
Потом вызываю метод inp_name
и там уже цикл while 5 раз отрабатывает и записывает свои значения.

Я к тому, что в том методе в txt файл подставляются данные от input() в цикле.
А аргументы класса не подставились, как это работает?
Я думал они первоначально через self передадутся единоразово.

А на деле получилось, что я вызвал метод guest.inp_name()
и просто активировался while и эээ... аргументами из инициализации класса и не пахнет.

class Guest:
    def __init__(self, inputt, inputt2):
        self.inputt = inputt
        self.inputt2 = inputt2

    def inp_name(self):
        filename = 'guest_3book.txt'
        a = 0
        while a < 5 :
            a += 1
            self.inputt = input("Введите ваше имя: ")
            self.inputt2 = input("Введите вашу причину: ")
            print(f'Привет, {self.inputt}!')
            with open(filename, 'a') as file_object:
                file_object.write(f'{self.inputt} \n')
                file_object.write(f'Моя причина - {self.inputt2} \n')

guest = Guest('David', 'wow')
guest.inp_name()
  • Вопрос задан
  • 154 просмотра
Подписаться 2 Простой 13 комментариев
Пригласить эксперта
Ответы на вопрос 1
ZhenyaMak
@ZhenyaMak
Писать качественный софт? Пфф, это не для меня.
Так.. Ну тут же ты переопределил поля inputt и inputt2 из self
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы