Как стать автором
Обновить

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

Хм, не то, чтобы я хотел раскритиковать в негативном смысле, но многое тут непонятно и можно было бы описать.

Вот скажите мне, человеку, не говорящему на парселтанге, зачем нужен tkinter? (нет, я прочитал, что это библиотека для рисования окошек, но можно было бы в двух словах упомянуть про это и дальше уже сослаться на статью за деталями)
Почему координаты элементов заданы прямо в их свойствах? не разумнее ли вынести их в переменные в начале программы? и, как я понял, tkinter умеет сам располагать элементы относительно друг друга используя .pack() или .grid(), почему именно .place()? из-за задания их размера?
Зачем нужен if __name__ == '__main__':? без него не заработает? (действительно не знаю)
Почему логика самой игры в том же цикле, что и создание окошечка? Можно ли вынести логику игры в отдельный цикл и перерисовывать только отдельные элементы по необходимости?
Зачем писать print(choise) для кнопки если он сразу же будет удалён? Если для отладки куда-то в консоль, то можно было бы и упомянуть об этом.
Может быть стоит скрыть полный листинг под спойлер?

P.S. я не пытаюсь разгромить пост, я действительно пытаюсь понять, почему сделано именно так: может быть есть веские причины, которые я не понимаю, а может быть просто этот код скорее proof of concept, показывающий, что такое вообще возможно сделать лёгким движением руки.
Зачем нужен if __name__ == '__main__':? без него не заработает?
без него не заработает, но и так тоже «фу-фу-фу»
надо делать функцию main со всей этой логикой и использовать
if __name__ == '__main__':
    main()
Зачем нужен if name == 'main':? без него не заработает?

Добавлю к предыдущему оратору.
Таки да — лучше написать if <тратата> main().
А просто с первой колонки не писать ничего.
Тогда при запуске программы будет выполняться это вот main().
А вот при импорте как модуля — ничего выполняться не будет.
Ну такой вот стиль хорошего тона.

Если статья рассчитана на новичков, то у меня 2 пункта:
1. Python 2.7? Он уже все :)
2. Вся статья это вставки кода и между ними текст вроде «и пишем вот эти строки:». Это мало что прояснит новичку.

Ещё не всё. В январе только прекратят работать над последним релизом, а в апреле хотят выложить этот релиз (2.7.18, если я не ошибаюсь).


P.S.: Я за Python 3 :)

from tkinter import *
не надо так, используйте только необходимые и явно перечисленные импорты (Frame, Button, ...)
del comp_choise
зачем? никакого смысла в этой строчке не вижу
я уж не говорю про разделение кода на более мелкие функции, например код выяснения кто победил вынести в
def check_result(self, user_choice, comp_choice): ...

Choice, draw, ничего, ничьих.

Спасибо, в этой статье уже не буду исправлять, в следующих учту.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории