techpriest
 Аватар для Mirmik
634 / 213 / 57
Регистрация: 27.02.2014
Сообщений: 1,180

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

08.03.2020, 16:13. Показов 1005. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru