возник вопрос по созданию итератора __iter__ по атрибуту-списку объекта.
в документации пишут что нужно возвращать объект-итератор.
но проверил с простым циклом и yield в теле __iter__ - так тоже работает.
непонятно только как с потокобезопасностью в этом случае - когда __iter__ вызывается для одного объекта из разных мест программы - внутреннее окружение __iter__ создается каждый раз другое или используется одно и то же ?