Built-in Types
Підтверджує й актуалізує поняття уроку: Text Sequence Type — str / Mutable Sequence Types.
4. Типізація даних (str, int, float, bool) → Першоджерело ↗Відеобібліотека
Пошук у нотатках курсу Python мануфактура та спільних матеріалах з переходом на потрібну секунду.
Підтверджує й актуалізує поняття уроку: Text Sequence Type — str / Mutable Sequence Types.
4. Типізація даних (str, int, float, bool) → Першоджерело ↗Methods mutable collections, які лише змінюють object, повертають None; тому list.insert() і list.sort() не треба присвоювати назад змінній.
Складіть однаковий список config keys для local, dev і CI без environment prefixes у коді.
Опишіть, хто створює test user, як він резервується для parallel worker і як відновлюється після failure.
Позначте зовнішні auth dependencies та окремо визначте production acceptance check і test-only seam.
Config matrix і state diagram без shared mutable user між parallel workers.
`build_user(email, role="viewer")` дозволяє не передавати типову роль, але явно перевизначити її через `role="admin"`. Default має бути безпечним і передбачуваним. Mutable defaults на кшталт `[]` або `{}` небезпечні, бо один об’єкт повторно використовується між викликами.
На базовому рівні потрібно розуміти primitives/value types, reference/object types, класи, об'єкти та принципи OOP. Із прикладних патернів найчастіше зустрічається Page Object; корисно впізнавати Singleton, Builder, Facade та інші рішення, але не впроваджувати їх без проблеми, яку вони реально спрощують. Page Factory виник навколо старих Selenium-підходів із lazy initialization елементів. Для сучасного Selenium або Playwright його не варто застосовувати за інерцією. У багатопоточному WebDriver framework кожен тест/worker повинен мати власний browser context або driver; спільний mutable driver спричиняє взаємний вплив тестів.
`.split(separator)` перетворює один рядок на `list[str]`, наприклад список email або частини тексту. Після цього до елементів можна звертатися за індексом, видаляти, вставляти або сортувати їх. Під час експерименту видно важливу особливість: методи на кшталт `list.insert()` змінюють список на місці й повертають `None`. Тому результат не треба присвоювати назад у список; спочатку викликається `emails.insert(...)`, потім читається `emails`.