Коли ви вводите exitкомандний рядок, він знаходить змінну з цим ім'ям і викликає __repr__(або __str__) на ній. Зазвичай ви отримуєте такий результат, як:
<function exit at 0x00B97FB0>
Але вони вирішили переглянути цю функцію для exitоб'єкта, щоб відобразити корисне повідомлення. Це дурна поведінка чи ні, це суб'єктивне питання, але одна з можливих причин, чому вона не "просто виходить", це:
Припустимо, ви шукаєте, наприклад, якийсь код у відладчику, і один із об'єктів посилається на exitфункцію. Коли налагоджувач намагається зателефонувати __repr__на цей об’єкт, щоб відобразити цю функцію вам, програма раптово припиняється! Це було б дійсно несподівано, і заходи протидії, які могли б ще більше ускладнити речі (наприклад, навіть якщо ви обмежите цю поведінку командним рядком, що робити, якщо ви спробуєте надрукувати якийсь об’єкт, який має exitатрибут?)
()в кінці ... в іншому випадку це може бути (можливо) змінною ... або якимось об'єктом ...