Зачем вам нужна проверка if not longest
, потому что при первом запуске цикла longest
равен None
, а вы не можете выполнить len(None)
. Таким образом, вы делаете if not longest
проверку, и только если это False
, проверяется второе условие.
Этой дополнительной проверки в этом случае можно избежать, инициализируя
longest
до
-1
вместо
None
и сравнивая
len(key)
с
longest
(не
len(longest)
).
Примерно так:
class LongestKey(dict):
def find_longest(self):
longest = -1
for key in self:
if len(key) > longest:
longest = len(key)
longest_key = key
print(longest_key) # <-- print longest key not just key.
Примечание : Ваш код печатает только последнюю клавишу, которая может быть не самой длинной клавишей каждый раз. В if
вам необходимо обновить самый длинный ключ вместе со значением longest
, как показано.