« first day (2121 days earlier)      last day (82 days later) » 

10:19 AM
Какой-то подозрительный юзер, штампует ответы не очень высокого качества ru.stackoverflow.com/users/426076/full-r
 
 
4 hours later…
2:05 PM
@insolor, так лучше?))) (насчет структуры) github.com/zaxoavoki/pypad
меня смущает чуть-чуть frames, там классы чисто с методом init, забавно))
 
2:29 PM
@entithat ну там есть более сложные классы, поэтому чтобы все единообразно было то пусть все окна будут классами. Я бы назвал dialogs, а не frames, потому что там все-таки окна, а не отдельные фреймы создаются. И еще, для отображения окна Toplevel не нужно вызывать метод mainloop
Методы increase_fontsize/decrease_fontsize можно заменить на property, снаружи будет выглядеть просто как fontsize -= 1 и fontsize += 1. Сброс значения на дефолтное можно реализовать например через fontsize = None
 
ага
хорошая идея
@insolor окей,а как я могу записать класс State в файл и потом при желании прочитать его и обновить сам класс State?
Записать, то я записал с помощь pickle, а считать вот нет идей как.
Вернее как обновить сам класс.
 
@entithat, pickle никогда не использовал не могу сказать (у меня есть такой предрассудок, что формат, поддерживаемый только одним языком, бесполезен). По идее точно так же как записали, так же и считывайте, перезаписываете существующий объект считанным значением) Я конфиг в json делал.
 
2:44 PM
@insolor ну так я вот собственно застрял на этапе перезаписывания обьекта. Я же его везде использую, потому что у него статичные поля. Я же его даже не могу перезаписать ))
 
Можно хранить это объект как поле приложения, а сам объект приложения везде передавать (ну или например синглтоном сделать, чтобы через класс к объекту приложения получать доступ).
 
та я уже так сделал, минидокументацию написал. Поздно менять структуру
я конечно, могу по каждому полю пройтись и перезаписать, но хотел бы сразу весь класс
 
-1
Q: Алгоритм расчета в задаче.Python

KishtakyПомогите решить задачу.

 
2:59 PM
Странно, что такое не работает. По сути должны же значения обновляться.
 
@entithat а дампится как?
 
state как класс <class =...>. k, v как background_color и #fff для примера
при том, что state возвращает новый записанный класс, т.е. с новыми значениями.
а не, не. стоп
Плохо записывает. Понял
Я просто максимально не хочу записывать отдельно все поля, а сразу целый ковалок
    with open(CONFIG['PREFERENCES_FILENAME'], 'wb') as f:
        print('writing: ', vars(State)) # тут в классе нужные значение
        pickle.dump(State, f) # тут должно бы было записать их
        messagebox.showinfo(title='Preferences', message='Your application state was saved successfully.')
скорее всего оно тут pickle.dump плохо пишет
 
3:18 PM
@entithat, не знаю, я записал state просто в строку, прочитал, все 14 полей прочитались
 
хм
не ну интересно почему так не работает
в чем подвох
оно как-будто записывает то, что в файле state.py
 
@entithat проще json использовать - сохранять только публичные поля. Так по крайней мере видно будет что фактически записано
 
А я наоборот хотел скрыть . Чтобы явно не было видно :)
 
@entithat какой смысл скрывать содержимое конфига?)
 
Не конфиг, а стейт))
 
3:28 PM
Какой смысл скрывать стейт?
 
Ну это ладно, смысла скрывать нет. Но интересно как обьект записать вот..
 
setattr не перезаписывает значения класса похоже
 
pickle скорее всего плохо записывал
не скорее всего, а точно.
 
Я вывел то что прочитано из pickle - все нормально прочитано. А после цикла перезаписи полей ничего не меняется.
 
@insolor перед записью vars(State) выводило то, что нужно. потом записало. Потом я считал и на выходе получал те значения, которые были в файле state.py без изменений.
Сейчас доделаю с json и потом еще раз попробую
 
3:35 PM
Так, я понял кажется
 
Хах, сделал с json. setattr не работает)))
 
Короче скорее всего проблема в том, что дампится сам класс, а не объект класса. Можно дампить значения как dict, потом как dict загружать, и из него значения в классе так же обновлять.
 
print выводит новые значения, в файле значит все ок записано
впринципе так и думал сделать
Только теперь вопрос, почему тут setattr не работает.
Ну а вообще нормальный "проект"?)) А то мне кажется, что как-то слабовато. Мне желательно получить за него 4.5, очень уж экзамен не хочу писать...
 
В общем, если сохранять не сам класс, а значения из него, то все работает:
 
setattr точно работает?
 
3:48 PM
Да
После цикла восстанавливается filename которое было до того как None туда записал
@entithat я думаю нормальный
В цикле перезаписи можно даже проверку на _ в начале имени поля убрать, потому что она при записи в picke уже была
 
да
капец, вроде записало теперь хорошо, а setattr серавно не срабатывает
Жаль нет чего-то такого как в js, State[k] = v, xD
 
4:03 PM
@entithat все работает:
 
хм, что за приколы
Аа, ахах все. понял
господи
я же по цвету проверял изменяется ли. А цвет я статичный указал ахах
надеюсь.
да, из конфига ахах
надо покушать, спасибо
self.linenumberingarea = tk.Text(root, font=(State.font_family, State.font_size), borderwidth=0, background=State.linenumbering_color, foreground=State.foreground_color, width=1, padx=5)


вот тут в параметрах background и foreground был не State..., а CONFIG[...]
ну, другое дело))
 
5:03 PM
0
Q: Связь между голосами и очередью проверок

Jack_oSПосле того, как был достигнут суточный лимит в сорок голосов, перестало предлагать проверку Первых сообщений... Какая связь между одним и вторым? Это баг или фича? ))

 
5:27 PM
@entithat, чтобы не спамить в общем чате, можно щелкнуть по аватару пользователя, и выбрать "start new room with this user", или в общем списке пользователей чатов найти меня, зайти в профиль, и точно так же можно новую комнату создать: chat.stackexchange.com/users
 
5:45 PM
@insolor Понял. Может кто бы подсказал что тут)
 
6:42 PM
-3
Q: Надо перевести тернарку на ифчики

Петр Подольскийconst returnAmount = (status === 'Accepted') ? undefined : returnAmountRaw - betAmount Интересно посмотреть на ваши решения^_^

На самом деле интересный вопрос. Чуть-чуть подредактировать и вполне себе..
 

« first day (2121 days earlier)      last day (82 days later) »