Сборщики мусора могут не только удалять не используемые объекты, но и, например, еще выполнять memory compaction или дефрагментацию. Насчет stw, то почти все современные gc прибегают к нему. В статьях, обычно, критикуют именно выбор достаточно старого и простого трехцветного алгоритма.
По поводу избегания циклических ссылок, то тут не все так однозначно. Пока кодовая база маленькая и количество разработчиков коммитящих в нее немного, то все ок. Но по мере роста команды и кода за этим будет следить все сложнее, да и в сторонних либах может быть все что угодно)
хэш от такого ключа всегда разный, по-этому элементы будут разбросаны по разным бакетам.
А точно хэши разные? Больше похоже на то, что хэши как раз совпали и произошла коллизия, а в таком случае происходит сравнение значений ключа. И так как вы сами же выше и написали, что NaN != NaN, из-за этого и считается что ключ новый и происходит вставка очередной пары с NaN ключом.
Я, вообще, про классы ничего не писал) Таааак... Доку читали, уже не плохо. И где там говорится что yield не превращает функцию в генератор? Все что написано в доке этому никак не противоречит и сорцы pytest это как раз и подтверждают. Учите матчасть)
А вы доку хоть открывали? Где там упоминание, что pytest превратился в самостоятельный язык программирования, который по своему трактует ключевые слова python?
Сборщики мусора могут не только удалять не используемые объекты, но и, например, еще выполнять memory compaction или дефрагментацию. Насчет stw, то почти все современные gc прибегают к нему. В статьях, обычно, критикуют именно выбор достаточно старого и простого трехцветного алгоритма.
По поводу избегания циклических ссылок, то тут не все так однозначно. Пока кодовая база маленькая и количество разработчиков коммитящих в нее немного, то все ок. Но по мере роста команды и кода за этим будет следить все сложнее, да и в сторонних либах может быть все что угодно)
Подсчет ссылок не решает проблему циклических ссылок. Собственно, в том же python именно поэтому есть и reference counting и generational gc
А точно хэши разные? Больше похоже на то, что хэши как раз совпали и произошла коллизия, а в таком случае происходит сравнение значений ключа. И так как вы сами же выше и написали, что NaN != NaN, из-за этого и считается что ключ новый и происходит вставка очередной пары с NaN ключом.
Ребенку, в отличии от юного автоматизатора, не надо будет общаться с коллегами и проходить собеседования)
Я, вообще, про классы ничего не писал) Таааак... Доку читали, уже не плохо. И где там говорится что yield не превращает функцию в генератор? Все что написано в доке этому никак не противоречит и сорцы pytest это как раз и подтверждают. Учите матчасть)
А вы доку хоть открывали? Где там упоминание, что pytest превратился в самостоятельный язык программирования, который по своему трактует ключевые слова python?
Сомневаюсь, судя по вашей статье, что вам это поможет, но все же глянтье: https://github.com/pytest-dev/pytest/blob/main/src/_pytest/fixtures.py#L893-L922
PS Причем здесь тестовые классы и POM?
Открою секрет - вот этот вот самый маркер и есть декоратор, а yield это вообще про генераторы.
Как обычная функция ничего не принимающая, например, и просто возвращающая значение вдруг превращается в декоратор?
А что декорирует фикстура?