Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
techpriest
 Аватар для Mirmik
634 / 213 / 57
Регистрация: 27.02.2014
Сообщений: 1,180

Откуда вызван __getitem__

08.03.2020, 16:13. Показов 1002. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Товарищи.

Есть ли возможность понять, вызван ли __getitem__ через синтаксис квадратных скобочек, или же через процедуру unpacking, аля

Python
1
a,b,c = foo()
?

P.S.
А... Нет. Оно, кажись вообще через iter работает...

Добавлено через 24 минуты
Хорошо, меняем вопрос.
Можно как-то в питоне распаковать генератор бесконечной последовательности?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.03.2020, 16:13
Ответы с готовыми решениями:

Узнать, откуда вызван AJAX запрос
Здравствуйте. Есть JS скрипт, в котором реализованы AJAX-запросы. Там прописано (допустим): $.ajaxSetup({ beforeSend:...

Откуда быз вызван метод,свойство и т.п.
Хотелось бы узнать есть ли в php какая-то функция с помощью которой можно узнать откуда был вызван данный метод - т.е. допустим, если я...

Открытие попап там, откуда он был вызван
Доброе утро! проблема с открытием попап под той ссылкой, откуда попап был вызван. сейчас он открывается по центру всегда. Нужно чтоб он...

2
 Аватар для Vigi
641 / 481 / 179
Регистрация: 28.05.2012
Сообщений: 1,419
08.03.2020, 16:19
PHP/HTML
1
a,b,c = foo()[:3]
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
10.03.2020, 15:54
Цитата Сообщение от Mirmik Посмотреть сообщение
Можно как-то в питоне распаковать генератор бесконечной последовательности?
У вас есть столько бесконечных переменных? Иначе вопрос звучит как-то по-детски: можно ли долететь до Марса, если хорошенько подпрыгнуть? Теоретически, да. А вот практически...

P.S. Вообще, бесконечные генераторы не распаковываются.
Python
1
2
3
4
5
6
>>> x,y,z,w = itertools.cycle('abcd')
Traceback (most recent call last):
  File "<pyshell#7>", line 1, in <module>
    x,y,z,w = itertools.cycle('abcd')
ValueError: too many values to unpack (expected 4)
>>>
И обычные генераторы не поддерживают синтаксис среза [x:y].
Исключение - range(). Но он и не совсем генератор и не бесконечный. Однако может генерировать последовательности любой длины, у него можно брать слайсы синтаксисом [x:y] и он поддерживает проверку на вхождение. Чего обычные истинные генераторы не поддерживают.

Добавлено через 3 минуты
Хотя, islice позволяет брать срез (другим способом) даже у бесконечного генератора:
Python
1
2
3
>>> list(itertools.islice(itertools.cycle('abcd'),2,10))
['c', 'd', 'a', 'b', 'c', 'd', 'a', 'b']
>>>
Но делает он это, разумеется, путем прохода по генерируемой последовательности с самого начала, отбрасывая ненужное и заканчивая на stop-индексе или на StopIteration при исчерпании генератора.

Добавлено через 11 минут
Да, кстати, вот такой фокус с бесконечным генератором не пройдет:
Python
1
2
3
4
5
6
7
>>> x,y,z,*w = itertools.cycle('abcd')
Traceback (most recent call last):
  File "<pyshell#18>", line 1, in <module>
    x,y,z,*w = itertools.cycle('abcd')
MemoryError
 
>>>
MemoryError при попытке записать оставшуюся часть последовательности (бесконечной!) в переменную w, которая в обычном случае будет списком.

Но небесконечный генератор вполне можно распаковать в какой-то набор переменных.
Python
1
2
3
4
5
6
7
8
9
10
11
>>> def test(lst):
    for i in lst:
        yield i
>>> x,y,*z = test(range(100))
>>> x
0
>>> y
1
>>> z
[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
>>>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.03.2020, 15:54
Помогаю со студенческими работами здесь

Как узнать откуда был вызван метод?
У меня после распознавания речи вызывается метод onActivityResult(). В нём речь преобразуется в String. После этого в зависимости откуда...

Как в отладке выяснить, откуда был вызван метод
Ребят как узнать откуда был вызван метод? К примеру ставлю точку останова на метод onCreate во фрагменте и вижу что он вызывается 2 раза...

Как записать в текстовый файл откуда был вызван метод?
мне надо написать логгер. не могу понять, как получить данные откуда вызывался метод. static void Main() { ...

Триггер, вызывающий процедуру, в которой выполняется select к этой таблице (откуда был вызван триггер)
есть тригерр create or replace trigger quickstart.quickstart.ACRIONS_COMMIT_TR after update on quickstart.actions for each...

.getitem = "" ?!
Добрый день. Ситуация такова: 1) было поле &quot;dep&quot; редактируемое текстовое поле 2) сменил тип &quot;поле со списком&quot; - значение...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru