Witam,
Mam prośbę, przeglądam taki kurs aktualnie: https://www.youtube.com/watch?v=Ej_02ICOIgs&t=4779&ab_channel=freeCodeCamp.org i nie mogę pojąć tego kawałka kodu:
@staticmethod
def is_integer(num):
if isinstance(num, float):
return num.is_integer()
elif isinstance(num, int):
True
else:
False
To znaczy, jeżeli wpiszę np. Nazwa_Klasy.is_integer(7.0) to metoda statyczna zwróci True, a jeżeli wpiszę Nazwa_Klasy.is_integer(7.5) to ta metoda statyczna zwróci mi False. A jeżeli wpiszę jako num jakiegoś stringa albo integera to zwróci mi None. Nie mogę pojąć dlaczego przy wartości, która jest liczbą całkowitą zwraca None. Rozumiem, że przechodzi przez pierwsze wyrażenie warunkowe 'odnotowuje', że to nie liczba zmiennoprzecinkowa, no właśnie i dlaczego przechodzi do wartości domyślnie zwracanej jak w przypadku gdy funkcja/metoda nic konkretnego, by nie zwracała, zamiast przejść do elif is_instance(num, int): True. No i jak to się dzieje, że funkcja jakby obcina przy 7.0 zero na końcu i traktuje to jak liczbę całkowitą. Przepraszam, być może mój problem wynika z tego, że biegle nie władam angielskim, a film jest jednak po angielsku. Z góry dziękuję za każdą pomoc.
Pozdrawiam
Mateusz