Krótko mówiąc - to nie ta sama funkcja.
- int (decimal) zachowuje się jak „floor, czyli odrzuć część dziesiętną i wróć jako int”
- int (string) zachowuje się jak „ten tekst opisuje liczbę całkowitą, konwertuje ją i zwraca jako int”.
Są to 2 różne funkcje o tej samej nazwie, które zwracają liczbę całkowitą, ale są to różne funkcje.
„int” jest krótkie i łatwe do zapamiętania, a jego znaczenie przypisane do każdego typu jest intuicyjne dla większości programistów, dlatego właśnie go wybrali.
Nie ma żadnej sugestii, że zapewniają tę samą lub połączoną funkcjonalność, po prostu mają tę samą nazwę i zwracają ten sam typ. Równie łatwo można je nazwać „floorDecimalAsInt” i „convertStringToInt”, ale wybrali „int”, ponieważ jest łatwy do zapamiętania, (99%) intuicyjny i rzadko zdarzał się błąd.
Przetwarzanie tekstu jako liczby całkowitej dla tekstu zawierającego kropkę dziesiętną, taką jak „4,5”, spowodowałoby błąd w większości języków komputerowych i większość programistów oczekuje, że spowoduje to błąd , ponieważ wartość tekstowa nie reprezentuje liczby całkowitej i implikuje podają błędne dane
type(3)zwraca<type int>. Jednak Python nie narzekafloat("3"). Czy Python nie konwertuje niejawnie ciągu na int, a następnie na float?