Українська
Відкрити в Telegram

ПостЧому None перевіряють через is, а не ==

29 вересня 2026
P
Python Nation🐍🇺🇦
Чому None перевіряють через is, а не == У пайтоні прийнято писати if x is None, а не if x == None. І це не просто стиль. None - це єдиний обʼєкт на всю програму. Скільки б разів ти не написав None, це завжди той самий обʼєкт у памʼяті. Тому is тут найточніша й найшвидша перевірка: порівняння за ідентичністю, без зайвих викликів. == працює інакше - він викликає метод __eq__. А його можна перевизначити. І тоді == None починає працювати неочікувано: class Weird: def __eq__(self, other): return True w = Weird() w == None # True w is None # False Обʼєкт очевидно не None, але == каже, що None. З is такого не станеться ніколи бо його не можна перевизначити. Коротко: для None (як і для True/False) завжди is. Це швидше, надійніше і не залежить від того, що хтось накрутив в __eq__.
1 · 196 ·

Поруч у стрічці

PPython Nation🐍🇺🇦__slots__ - коли обʼєктів багато За замовчуванням кожен обʼєкт у пайтоні тримає свій __dict__, тобто словник з атрибутами. Це зручно бо можна додати будь-який аPPython Nation🐍🇺🇦Чому 256 is 256 - True, а 257 is 257 - не завжди У пайтоні є оператор is, який перевіряє не рівність значень, а те, чи це один і той самий обʼєкт у памʼяті. І т
це повідомлення
PPython Nation🐍🇺🇦finally мовчки затирає твій return Погляньмо на функцію: def f(): try: return "from try" finally: return "from finally" f() # "from finally" Здавалося б, return
PPython Nation🐍🇺🇦Python Nation🐍🇺🇦@pythonnation · канал · Технології
1 925підписників184середнє охоплення поста
Стрічка майданчика Відкрити в Telegram

Відкрита публічна стрічка з пошукового індексу ChatCrawler — «Google по публічному Telegram»; оновлюється в міру обходу майданчика. Час — UTC.

Лише публічний контент, офіційний API Telegram. Про проєкт · Питання · Межі індексу · Прибрати сторінку з видачі · Каталог · Пошук · Як ми рахуємо