170 похожих чатов

Доброе утро 🙂 Почему в файл testo.txt ничего не записывается? Не

особо понимаю в чём проблема


class OurGuest():
def __init__(self, manyg = 0, filename = "", guest = []):
# self.guest = guest
self.manyg = manyg
self.filename = filename
self.guest = guest

def guests(self):
guest = []
for i in range(self.manyg):
guest.append(input("Введите имя гостя: "))


def file1(self):
with open(self.filename, "w") as file:
for i in self.guest:
file.write(i)

def attempt(self):
self.guests()
self.file1()


my_test = OurGuest(3, "testo.txt")
my_test.attempt()

18 ответов

10 просмотров

А список в аргументах по умолчанию - плохо же?

Solis Occasus- Автор вопроса

Мутабельный аргумент плохо

Solis Occasus- Автор вопроса
Максим Василькин
Намёк)

ааа, допёр. У меня guest по итогу пустым становится и поэтому ничего не записывает

Solis Occasus- Автор вопроса
Максим Василькин
Намёк)

спасибо) сейчас решать буду

Кстати, а почему ты guest'ов добавляешь в локальный список guest для метода guests? После того как ты ввел всех guest'ов, происходит выход из скоупа функции(метода) и этого списка более не существует

Solis Occasus- Автор вопроса
Solis Occasus
Да, я уже нашёл ошибку. Спасибо 🤗

Еще убери дефолтное значение у guest. Можешь убрать guest из сигнатуры вообще, и в ините сделать self.guest = []

Solis Occasus- Автор вопроса

а чем это плохо? только из-за того, что guest не получает никаких параметров, а manyg и filename получают?

Solis Occasus
а чем это плохо? только из-за того, что guest не п...

Дефолтные значения ни чем не плохи. А вот дефолтные изменяемые значения - плохи Вот почему def foo(arg=[]): arg.append(1) print(arg) foo() foo() foo() > [1] [1, 1] [1, 1, 1]

Solis Occasus- Автор вопроса
quantum super position
Дефолтные значения ни чем не плохи. А вот дефолтны...

а, понял. Спасибо Остальное лучше оставить или убрать? Остальное вроде не изменяется

Solis Occasus- Автор вопроса
quantum super position
Дефолтные значения ни чем не плохи. А вот дефолтны...

Так все логично же. Сколько дернул, столько апенд и отработал

APSYHEA
Так все логично же. Сколько дернул, столько апенд ...

Только это крайне редко является ожидаемым поведением :)))

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

Обсуждают сегодня

Кстати, а я вот тут подумал. Допустим, у нас имеется цикл который выполняет огромное количество итераций, но мы хотим, чтобы какие-то действия исполнилось только один раз. В Я...
The Bird of Hermes
23
Доброй ночи. Вопрос знатокам. Имеется некая таблица, результат которой выведен в DBGrid на форме. И есть форма, с помощью которой можно как добавить запись, так и отредактиров...
Евгений
28
а всё почему? потому что ассемблер в отличии от яву порождает множество пагубных привычек, среди которых например можно отметить использование глобальных переменных для всего ...
Mixail Frolov
35
анрей С какой целью зашёл?
КТ315
42
я часов 15 назад начал пытаться написать хоть что-то напоминающее ос и у меня есть проблема, которую я пытаюсь решить последние часов 5: есть крч 2 исходника с минимальным код...
Al1to
17
Кто нибудь из участников чата пишет на ассемблере под GNU/Linux?
Spiker01
24
Всем привет ребят! Мб кто-то сталкивался? adminСomponents .get("searchСomponents", use: searchComponents) .openAPI( summary: ...
Admin Adminov
2
Насколько моя реализация Exercise 1 плохая? data MessageType = Info | Warning | Error Int deriving (Show, Eq) type TimeStamp = Int data LogMessage = LogMessage ...
= ?
10
Кстати вопрос. Проанализировав свои проекты я понял, что в наиболее ценных из них Асм использовался для организации real-time процессов (внутри DOS). А какие есть способы сего...
Alexander Morozov
18
Добрый день, подскажите пожалуйста. RabbitMQ автоматически создаёт очередь если я отправляю сообщение в несуществующую очередь? Вопрос вроде тупой, но мнения разошлись. Одни г...
Elmo
9
Карта сайта