August 6th, 2013

nyaload

В питоне можно отстрелить себе хвост (до самой головы)

Оказывается, переменные False и True в питоне - ищутся динамически в таблице имен, вместо трансляции констант в байт-код. Их можно переопределить:

def f():
    return False

import __builtin__ 
__builtin__.False = 7

print f() #печатается 7


( по мотивам твита )

upd: в python3 True/False это таки константы, а не имя по которому ещё надо поискать.