В данном коде демонстрируется декоратор проверки вхождения значений в диапазон для позиционных аргументов.
🔘 Декоратор @𝚛𝚊𝚗𝚐𝚎𝚝𝚎𝚜𝚝((𝟷, 𝟶, 𝟷𝟸𝟶)) проверяет, что аргумент с индексом 𝟷 (𝚊𝚐𝚎) находится в диапазоне от 𝟶 до 𝟷𝟸𝟶
🔘 Если __𝚍𝚎𝚋𝚞𝚐__ = 𝚃𝚛𝚞𝚎 (режим отладки), функция оборачивается проверкой
🔘 При вызове 𝚙𝚎𝚛𝚜𝚒𝚗𝚏𝚘('𝙱𝚘𝚋', 𝟺𝟻) проверяется: 𝟺𝟻 >= 𝟶 и 𝟺𝟻 <= 𝟷𝟸𝟶
🔘 Условие выполняется, поэтому функция выполняется нормально и выводит «𝙱𝚘𝚋 𝚒𝚜 𝟺𝟻 𝚢𝚎𝚊𝚛𝚜 𝚘𝚕𝚍»
В имеющемся коде объект функции обертывается представленной формой исследования, если активен режим 𝚍𝚎𝚋𝚞𝚐 (по умолчанию 𝚃𝚛𝚞𝚎). В противном случае возвращается сама функция, и код выполняется без дополнительных проверок.
Если бы 𝚊𝚐𝚎 был вне диапазона (например, 𝟷𝟻𝟶), то возникло бы исключение 𝚃𝚢𝚙𝚎𝙴𝚛𝚛𝚘𝚛 с сообщением «𝙰𝚛𝚐𝚞𝚖𝚎𝚗𝚝 𝟷 𝚗𝚘𝚝 𝚒𝚗 𝟶..𝟷𝟸𝟶».
Post #4303
615
- 👍 1
- 👎 1