Ruby может добавлять методы в класс Number и другие основные типы для получения таких эффектов:
1.should_equal(1)
Но похоже, что Python не может этого сделать. Это правда? И если так, то почему? Это как-то связано с тем, что type нельзя изменить?
Обновление: вместо того, чтобы говорить о различных определениях исправлений обезьян, я хотел бы просто сосредоточиться на примере выше. Я уже пришел к выводу, что это невозможно сделать, поскольку некоторые из вас ответили. Но я хотел бы получить более подробное объяснение того, почему этого нельзя сделать, и, возможно, какая функция, если она доступна в Python, позволит это сделать.
Чтобы ответить на некоторые из вас: причина, по которой я мог бы захотеть сделать это, заключается просто в эстетике / удобочитаемости.
item.price.should_equal(19.99)
Это больше похоже на английский и ясно указывает, какое значение является проверенным, а какое - ожидаемым, как предполагается:
should_equal(item.price, 19.99)
Эта концепция является основой Rspec и некоторых других платформ Ruby.