list НЕ реализует внутри себя методы next. Это легко проверить, вызвав my_list.__next__() или передав список в функцию next(). --> AttributeError: 'list' object has no attribute 'next'.
list лист, как итерабельный объект реализует метод __iter__, который возвращает каждый раз новый итератор. А вот именно итератор и реализует метод __next__. И ещё итератор реализует и метод __iter__, но возвращает сам себя (это для удобства сделано). Итерируемый объект (итераторы не берем во внимание т.к. они итерируемы только формально и для удобства) НЕ ДОЛЖНЫ реализовывать метод next - это приводит ко серьезным ошибкам (вроде того, что объект можно будет обойти лишь одноразово).
Есть в Python вполне конкретный патерн под названием Iterator. Про него я и писал. А если создать свой итератор и заставить его "распухать", то это получится сделать только потому что всё в питоне - объекты и с ними можно творить что хочешь.
:) Зависит от целей. Цель статьи показать как можно исследовать объекты, чтобы изучение языка было более продуктивным и интересным. Целевая аудитория новички.
Цель статьи не в документации протокола итераторов. Цель статьи показать как можно исcледовать объекты в Python методом черного ящика, делая маленькие выводы самостоятельно, чтобы сделать освоение языка более интересным и продуктивным. Это полезно для тех, кто только начинает изучать Python. Иными словами, целевая аудитория в первую очередь новички. Но за комментарий спасибо!
Полностью согласен! Более того, для меня это одна из интереснейших книг о Python в принципе. Но целью моей статьи было показать как можно производить исследовательскую активность для анализа объектов. На мой взгляд, это полезно для тех, кто только начинает изучать Python - так его изучение можно сделать продуктивнее и интереснее.
А этого никогда не будет. Потому что, на мой скромный взгляд, разработчика пытаются привлечь по статье притянутой за уши. И если 10000 пользователей Варгейминга вдруг станут фигурантами уголовного дела, то это будет катастрофа для Варгейминга. То есть, фактически этот сценарий - это стратегия защиты.
273 статья УК РФ. Это «Создание, использование и распространение вредоносных компьютерных программ». Варгейминг называет читы "вредоносными программами". Правда термин "вредоносная программа" применяется не с потолка, а исходя из заключения специалистов после проверочной закупки сотрудниками МВД. Хорошо, читы это "вредоносные программы". Далее Варгейминг утверждает что читы этого автора привели к ущербу в 670 млн. рублей и было заблокировано 10000 аккаунтов, использовавших читы. А юридический представитель компании Wargaming сообщает что "Создание и продажа программ, нарушающих правила игр и их внутреннюю экономику,— это такое же преступление, как кража или мошенничество, и противодействовать ему нужно в правовом поле". Так вот это какое-то избирательное использование правового поля!
Статья 273 УК РФ это не только создание и распространение, но ещё и ИСПОЛЬЗОВАНИЕ вредоносных программ. Почему бы теперь не привлечь всех владельцев 10000 аккаунтов по 273 ч.1 УК РФ за использование вредоносных программ (что подтверждено экспертизой)?.. Почему МВД ещё не начало поиск этих 10000 людей? Ведь признаки преступления на лицо. Ах да, это, наверное, не выгодно для компании) Но дело-то против автора читов уже есть - как там, органы следствия не должны расширить список подозреваемых?
Ах, да, юридический представитель поэтому и заявляет что "создание" и "распространение" читов - это "как кража и мошенничество", а не 273 статья УК РФ «Создание, использование и распространение вредоносных компьютерных программ».
list НЕ реализует внутри себя методы next. Это легко проверить, вызвав my_list.__next__() или передав список в функцию next(). --> AttributeError: 'list' object has no attribute 'next'.
list лист, как итерабельный объект реализует метод __iter__, который возвращает каждый раз новый итератор. А вот именно итератор и реализует метод __next__. И ещё итератор реализует и метод __iter__, но возвращает сам себя (это для удобства сделано). Итерируемый объект (итераторы не берем во внимание т.к. они итерируемы только формально и для удобства) НЕ ДОЛЖНЫ реализовывать метод next - это приводит ко серьезным ошибкам (вроде того, что объект можно будет обойти лишь одноразово).
Есть в Python вполне конкретный патерн под названием Iterator. Про него я и писал. А если создать свой итератор и заставить его "распухать", то это получится сделать только потому что всё в питоне - объекты и с ними можно творить что хочешь.
Посмотрел на линуксе, действительно 48.
А на винде - 32.
Спасибо за информацию!
Это размер непосредственно объекта range - арифметической прогрессии (про это написанно в конце статьи), а не итератора.
А вот так будет сколько?
print(sys.getsizeof(iter(range(0))))
:) Зависит от целей. Цель статьи показать как можно исследовать объекты, чтобы изучение языка было более продуктивным и интересным. Целевая аудитория новички.
Цель статьи не в документации протокола итераторов. Цель статьи показать как можно исcледовать объекты в Python методом черного ящика, делая маленькие выводы самостоятельно, чтобы сделать освоение языка более интересным и продуктивным. Это полезно для тех, кто только начинает изучать Python. Иными словами, целевая аудитория в первую очередь новички. Но за комментарий спасибо!
Полностью согласен! Более того, для меня это одна из интереснейших книг о Python в принципе. Но целью моей статьи было показать как можно производить исследовательскую активность для анализа объектов. На мой взгляд, это полезно для тех, кто только начинает изучать Python - так его изучение можно сделать продуктивнее и интереснее.
А этого никогда не будет. Потому что, на мой скромный взгляд, разработчика пытаются привлечь по статье притянутой за уши. И если 10000 пользователей Варгейминга вдруг станут фигурантами уголовного дела, то это будет катастрофа для Варгейминга. То есть, фактически этот сценарий - это стратегия защиты.
273 статья УК РФ. Это «Создание, использование и распространение вредоносных компьютерных программ». Варгейминг называет читы "вредоносными программами". Правда термин "вредоносная программа" применяется не с потолка, а исходя из заключения специалистов после проверочной закупки сотрудниками МВД. Хорошо, читы это "вредоносные программы". Далее Варгейминг утверждает что читы этого автора привели к ущербу в 670 млн. рублей и было заблокировано 10000 аккаунтов, использовавших читы. А юридический представитель компании Wargaming сообщает что "Создание и продажа программ, нарушающих правила игр и их внутреннюю экономику,— это такое же преступление, как кража или мошенничество, и противодействовать ему нужно в правовом поле". Так вот это какое-то избирательное использование правового поля!
Статья 273 УК РФ это не только создание и распространение, но ещё и ИСПОЛЬЗОВАНИЕ вредоносных программ. Почему бы теперь не привлечь всех владельцев 10000 аккаунтов по 273 ч.1 УК РФ за использование вредоносных программ (что подтверждено экспертизой)?.. Почему МВД ещё не начало поиск этих 10000 людей? Ведь признаки преступления на лицо. Ах да, это, наверное, не выгодно для компании) Но дело-то против автора читов уже есть - как там, органы следствия не должны расширить список подозреваемых?
Ах, да, юридический представитель поэтому и заявляет что "создание" и "распространение" читов - это "как кража и мошенничество", а не 273 статья УК РФ «Создание, использование и распространение вредоносных компьютерных программ».