Простими словами - це не однакові функції.
- int (десятковий) поводиться як "нижній, тобто збиває десяткову частину і повертає як int"
- int (рядок) поводиться як "цей текст описує ціле число, перетворює його та повертає як int".
Це 2 різні функції з однаковим іменем, які повертають ціле число, але це різні функції.
"int" є коротким і легким для запам'ятовування, і його значення, що застосовується до кожного типу, інтуїтивно зрозуміле для більшості програмістів, тому вони і вибрали його.
Це не означає, що вони надають однакову або комбіновану функціональність, вони просто мають однакову назву і повертають один і той же тип. Їх так само легко назвати 'floorDecimalAsInt' і 'convertStringToInt', але вони вибрали 'int', оскільки це легко запам'ятати, (99%) інтуїтивно і плутанина рідко трапляються.
Розбір тексту як цілого числа для тексту, який включав десяткову крапку, наприклад "4.5", призведе до помилки в більшості комп'ютерних мов, і, як очікується, більшість програмістів спричинить помилку , оскільки текстове значення не представляє ціле число і означає вони надають помилкові дані
type(3)повертається<type int>. Однак python не скаржитьсяfloat("3"). Хіба python не імпліцитно перетворює рядок на int, а потім на float?