Форум сайта python.su
Т.е., pip все сам делает (подтягивает зависимости)?
Офлайн
a.bondarenko
Скажите, пожалуйста, а вам гуглом пользоваться западло, да?
Офлайн
Гуглом и яндексом я пользуюсь активно, но получаю обычно не то, что меня интересует. Я понимаю ваше возмущение, наверное, не хватает мне образования. Но вот пример, скачал недавно книгу по питону, начал разбирать коды, и что вы думаете, из 18 строк кода (прямо из первого примера) - одна строка вообще пропущена, две других не работает. С трудом догадался как сделать, чтобы сработало. Например:
deck._init_() # в исходном коде этот оператор был пропущен (инициализация экземпляра)
deck._len_()) # —-“——- было len(deck), что дает ошибку
Ну и так далее. Закрыл эту книгу и удалил.
Если вам, FishHook, ”не западло", возьмите надо мною шефство. Я, хоть и в годах, еще способен учиться (обо мне можно посмотреть на сайте www.ntctt.boxmail.biz далее Рабочий кабинет => About..). В рамках изучения питона написал программу генерации экзаменационных билетов, да вот не могу никак сделать экзешник, чтобы передать (бесплатно) своим коллегам. Войдите, пожалуйста, в мое положение.
Офлайн
a.bondarenkoне дает это ошибку
deck._len_()) # —-“——- было len(deck), что дает ошибку
class Foo: def __len__(self): return 5 f = Foo() print(len(f))
a.bondarenkoА откуда по-вашему другие участники коммьюнити берут информацию? Интернет у нас один, в чем сложности найти например вот эту статью в википедии, в ней есть множество ссылок на документацию, и прочитать её? Ведь конечно же если вы сами получите информацию из первоисточника, это будет гораздо эффективней, чем получить чей то вольный пересказ.
Гуглом и яндексом я пользуюсь активно, но получаю обычно не то, что меня интересует.
Офлайн
Я вас понял. Будем сами копаться.
Вот описание класса из книги (комментарии мои) из той книги:
class FrenchDeck:
ranks=+list('JQKA') # цена карты
suits='spades diamonds clubs hearts'.split() # масть карты
def _init_(self): # служит для задания начальных значений (инициализация)
self._cards=
def _len_(self): # выдает количество элементов
return len(self._cards)
def _getitem_(self,position): # в исходном коде отсутствовал position
return self._cards # выдает элемент коллекции по номеру
beer_card=Card('7','diamonds') # задаваемая карта
print(beer_card)
deck=FrenchDeck() # создает именованный экземпляр класса
deck._init_() # в исходном коде этот оператор был пропущен (инициализация экземпляра)
print(deck._len_()) # —-"——- было len(deck), что дает ошибку
print(deck._getitem_(-1))
print(deck._cards)# —"——- было deck, что дает ошибку
choice(deck.ranks) # выбор случайной цены карты (choice(deck)не работает)
choice(deck.suits) # выбор случайной масти карты
print (“выбор случайной цены карты=”,choice(deck.ranks))
print (“выбор случайной масти карты=”,choice(deck.suits))
beer_cardv=Card(choice(deck.ranks),choice(deck.suits)) # случайная карта
print (beer_cardv)
Я считаю, что если уж написано в книге, то должно фурыкать без вопросов. len(deck) точно не работает. М.б., версия питона не та, не знаю. Там же и choise(deck) не работал, пришлось отдельно выбирать атрибуты (ranks и suits).
Офлайн
a.bondarenko
Я не знаю, какой именно учебник вы читаете, и тем более не хочу отвечать за автора учебника, но в каждой книге по питону, которую я читал, специально выделялся тот момент, что знаков подчеркивания в именах магических методов должно быть два. Более того, я вам только что показал рабочий пример, и не увидеть в нем, что метод пишется так
__len__
_len_
Отредактировано FishHook (Апрель 1, 2019 10:51:15)
Офлайн
> Т.е., pip все сам делает (подтягивает зависимости)?
Совершенно верно.
> deck._init_() # в исходном коде этот оператор был пропущен (инициализация экземпляра)
Эти методы нужно определять с двумя (а не с одним!) подчёркиваниями с двух сторон. Если это сделать то код из книги будет правильно работать.
Офлайн
Да, я виноват с этими двумя подчерками (не рассмотрел, как следует, был pdf-экземпляр книги, коды были видны очень плохо, копирование не работало). Я тоже читал про два подчерка, но по тупости думал, что это относится к тому, что они имя окаймляют с обоих сторон, а то, что они выглядят длиннее, не пришло в голову. Простите ради бога.
Офлайн
a.bondarenko,если уж взялся программировать, то поставь себе линукс (второй системой или на виртуальную машину в винде (лучше второй системой)) и освой систему контроля версий Git и сайт https://www.github.com , куда можно выкладывать код. Даже вот сам питон развивается сейчас на github'е ссылка. Это мейнстрим.
a.bondarenkoУстаревшее у тебя там всё, включайся в современные средства.
обо мне можно посмотреть на сайте www.ntctt.boxmail.biz далее Рабочий кабинет => About
Офлайн
Да, ребята, каждый новый критик или помощник имеет все больший рейтинг, вначале было 135, а теперь уже 554. Да, действительно, все устарело, согласен, да ведь я не профессиональный программист, а любитель. Начинал-то еще в 1964 году на ламповых машинах и перфокартах, когда вас, вероятно, еще не было на свете. Все что делал - было на голом энтузиазме. Рад бы включаться в современные средства, но нет уже “тямы”. Но вы все молодцы, завидую вам. Спасибо вам, что вы есть.
Офлайн