Предизвикателства > Полиморфичен негативизъм > Решения > Решението на Димитър Христов

Резултати
1 точки от тестове
0 точки от учител

1 точки общо

5 успешни теста
0 неуспешни теста
Код
Скрий всички коментари

 1def invert(item):
 2    if not isinstance(item, bool) and isinstance(item, int):
 3        return item*(-1)
 4    if isinstance(item, float):
 5        return item*(-1)
 6    if isinstance(item, bool):
 7        return not item
 8    if isinstance(item, str):
 9        return item[::-1]
10    return None
11
12def no_it_isnt(items):
13    result = []
14    for item in items:
15        result.insert(0,invert(item))
16    return result

.....
----------------------------------------------------------------------
Ran 5 tests in 0.000s

OK

Дискусия
Георги Кунчев
19.10.2023 09:08

Опират се да подскажа, но уви, неуспешно. Освен `append` имаш и `prepend` ;)
Димитър Христов
19.10.2023 01:24

.insert() ползвам вместо append() за да не го reversвам после.
Георги Кунчев
18.10.2023 20:26

Това е така, защото `isinstance` проверява всички наследници по дървото. В Python `bool` наследява `int`. Защо? -> https://peps.python.org/pep-0285/ Ако използваш `type(True)` виждаш конкретният тип и няма да има объркване.
Димитър Христов
18.10.2023 19:27

Мразя фактa, че isinstance(True, int) връща True.
История
Това решение има само една версия.