argon-83 писал(а):
85325749Это жесть... Такое происходит в коде этой книги, что просто лопаются глаза от ужаса.... Вот почему такие книги вообще появляется в принципе? Для кого? Зачем??? Вся эта книга, от самого первого символа и до самого последнего, показывает КАК НИ В КОЕМ СЛУЧАЕ ДЕЛАТЬ НЕЛЬЗЯ!
Главное каркнуть. Нормальные программисты к своим претензиям прикладывают код. Бегло просмотрел до описания и создания классов, особо косяков не обнаружил. Наоборот очень все доступно объясняется, даже такая сложная вещь как объекты. Автор конечно упрощает многие вещи, но это книга для начинающих, людей которые ни разу не программировали. Если вдаваться в детали до конца можно и не дойти. Переменные с коробочками очень хорошо описал.Например циклы автор описывает не просто
а на примере конструкции с многочисленными print() функциями, конструкция с циклом делает тоже самое но короче и проще - что наглядно показывает зачем циклы. Хотя упрощение при описании классов может и тормознуть. Само описание классов очень хорошо, но там чуток намешено и непонятно что описание класса это по сути создание документации. Которая потребуется при создании конкретных объектов(это как с функциями - описываете вы их в одном месте, а затем вызываете по короткой записи function(), тут так же описываете в классе из чего должен состоять объект, а потом уже создаете конкретный объект которым пользуетесь) и например self как раз будет нужна уже конкретному объекту. Например когда вы создаете несколько конкретных объектов "кошка", благодаря self программа не перепутает одну кошку с другой(если вы покрасите конкретную кошку в зеленый цвет, то именно эта кошка и покраситься и будет все время зеленой).
P.S У конкретного объекта вы никогда не увидите параметр self, это не значит что его нет. В недрах памяти Python он есть и на него можно посмотреть. Только для этого в описании класса нужно создать метод
Код:
class Cat:
def kak_vygljadit_self(self):
return "Self выглядит как", self
#Затем создать конкретный объект и вызвать этот метод
konkretnaja_cat = Cat()
print(konkretnaja_cat.kak_vygljadit_self())
На что программа выдаст строку похожую на эту
('Self выглядит как', <__main__.Cat object at 0x0000022665CC4910>)
Где номер как раз и есть self из -за которого программа не перепутает эту кошку с другими - индификатор объекта.
P.S2 Конкретный объект, реальный объект, экземпляр класса(по английски сlass instance), объект класса и т.д. - это все синонимы. Из-за правил русского языка чтобы не было тавтологии, авторам приходится пользоваться многочисленными синонимами, что ясности при объяснении не добавляет. Тут прикол еще в чем что в многих учебниках начинают с объяснения смысла, понятия объект, и там все не однозначно когда встречается просто такое слово нужно быть осторожным и в зависимости от автора это может быть конкретный объект, а может быть синоним для класса. В общем мозги могут вылететь на раз. В этой книге я такой путаницы не заметил.
P.S3 Мое описание тоже может запутать, но классы и объекты не простая тема для быстрого освоения. Дорогу осилит идущий. Просто не сдавайтесь смотрите разные источники, делайте перерыв если чувствуете что уперлись лбом в стену, в неделю, в месяц, пару месяцев и снова в бой.
Возвращаясь к книге, скажу что плохие книги не переиздают. И плюс автору что он что-то переписал и внес правки, что не часто встречается. Еще плюсом лично для меня что автор пользуется PyCharm а не гребаным jupiter notebook, который практически стандарт в программировании ИИ и на основе его практически все уроки по ИИ. Ничего не имею против jupiter notebook, вещь полезная и удобная но мне не зашла.
Претензия к старому Python 3.7, 3.8, просто смешная. Книжка пишется и переписывается не за один день, в каком Питоне автор начал, в том и закончил. Python 3.7 вполне актуален. А также для таких случаев и существует виртуальное окружение, в котором кстати автор создает проект при знакомстве с Pycharm, что кстати также плюсом ему едет, не все так делают. Правда не объясняет что это такое, но так это книжка не по Python(на 23 страницах у автора выложено самое основное, за такой небольшой объем язык не выучить, даже книжки типа "какой то язык за 21 день", толще чем 23 страницы), если все писать книга будет толще и дороже.
P.S Кстати даже за те 75 страниц что пролистал узнал кое что новое для себя, это про существование PyQt5Designer, уже лет десять на Питоне сижу а про такую хорошую вещь не знал, пользовался WxPython - вещь хорошая, но когда программируешь редко как я, все забывается и приходится тупить какое то время. С графическим интерфейсом как у Delphi конечно сокращается время создания оконного приложения.