Du det galna är att det faktiskt fungerar!
pvz@pvz-ryzen:~$ python3
Python 3.12.3 (main, Apr 10 2024, 05:33:47) [GCC 13.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> (int)(1234)
1234
>>>
Men det funkar inte av anledningen du kanske tror. I ett språk som C så är ju (int)
hur du gör en typecast, och om du, i C, skriver (int)(1234)
så kommer det parsas så här:
(int)(1234)
^^^^ Typecast till int
^^^^^^ Paranteserna här grupperar ett (matematiskt) uttryck, som bara innehåller en term, 1234.
Men i Python blir det istället så här:
(int)(1234)
^^^^ Paranteserna runt int grupperar ett uttryck, resultatet av detta blir "int". Ungefär som en funktionspekare.
^^^^^^ Här representerar parantesen en argumentlista, inte ett uttryck, och paranteserna behövs
Så det är bara av ren "tur" som (int)(1234)
funkar i både C och Python.
(int)1234
däremot, vilket om jag ska gissa är vad du försökte skriva, funkar bara i C, eftersom paranteserna krävs för att det ska bli ett funktionsanrop i Python.
int(1234)
funkar på samma sätt inte i C, eftersom paranteserna krävs för att det ska bli ett funktionsanrop.
Hoppas jag gissat rätt på vad som blev fel där igår