Форум сайта python.su
0
Если 1 и True это разные объекты, то почему если в множество содержащее 1 добавить True, то ничего не измениться?
Офлайн
568
dmitry_sulin
А вы попробуйте добавить во множество словарь. Не получается? А почему?
Предлагаю нагуглить самостоятельно.
Отредактировано FishHook (Апрель 14, 2016 15:50:03)
Офлайн
186
> Если 1 и True это разные объекты
True это и есть 1, а False 0.
Офлайн
568
Rodegastнет
True это и есть 1, а False 0.
Офлайн
186
FishHookВы не поверите, но всё таки да:
нет
>>> False - True -1
Отредактировано Rodegast (Апрель 14, 2016 15:54:01)
Офлайн
568
Rodegastнет не поверю
Вы не поверите, но всё таки да:
>>> True is 1 False
Офлайн
186
FishHook
нет не поверю
>>> True == 1 True >>> True == 2 False >>> False == 1 False >>> False == 0 True
Отредактировано Rodegast (Апрель 14, 2016 16:04:13)
Офлайн
5
bool это подкласс int
В строковом представлении True и False.
В остальных случаях 1 и 0.
Офлайн
568
Rodegast
Ну и что?
# -*-coding:utf-8-*- class bool: def __init__(self, i): self.__i = i def __eq__(self, other): return other is self.__i or other is true true = bool(1) print(true == 1) print(true == 2)
Офлайн
568
a = True b = 1 print(id(True)) print(id(a)) print(id(1)) print(id(b))
4297151328 4297151328 4297537888 4297537888
Офлайн