Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 22, 2013 22:50:30

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

Рубрика "Чудеса"

Жесть. Вот поэтому я и не люблю джангу…



Офлайн

#2 Ноя. 22, 2013 23:18:51

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Рубрика "Чудеса"

А я сегодня для себя открыл, что:

# python2.7
assert isinstance(True, int) and isinstance(False, int)
assert issubclass(bool, int)
Совершенно не очевидно, мне кажется. Хорошо на видном месте код был. В оф. документации сказано об этом?

..bw



Офлайн

#3 Ноя. 23, 2013 17:13:06

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

Рубрика "Чудеса"

bw, я почему-то сразу об этом знал и это кажется мне логичным, хотя бы по тому, что многие именно 1 и 0 используют вместо True и False (руки бы поотрывал!).

assert True == 1 and False == 0



Офлайн

#4 Ноя. 23, 2013 17:48:32

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Рубрика "Чудеса"

ZZZ
bw, я почему-то сразу об этом знал и это кажется мне логичным, хотя бы по тому, что многие именно 1 и 0 используют вместо True и False (руки бы поотрывал!).
Вы знаете, вообще не очевидно, что вернет вот это выражение
>>> print 1 and [1,2,3] and dict() and False
Внимание, конкурс!
Господа, новички, без проб кода, отписываемся, что по Вашему вернет выражение



Офлайн

#5 Ноя. 23, 2013 17:51:15

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Рубрика "Чудеса"

ZZZ
Жесть. Вот поэтому я и не люблю джангу…
Джанга не при чем, это вечер субботы и излишне эмоциональное состояние оператора ЭВМ.



Офлайн

#6 Ноя. 23, 2013 18:02:45

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Рубрика "Чудеса"

FishHook
Внимание, конкурс!
Господа, новички, без проб кода, отписываемся, что по Вашему вернет выражение

Думаю False(т.е. последнее значение, которое проверяется) вернёт, т.к. из-за него всё выражение False должно быть

=) а вернул словарь, блин, не подумал, что он же пустой и на нём проверка закончится



Отредактировано Budulianin (Ноя. 23, 2013 18:04:20)

Офлайн

#7 Ноя. 23, 2013 18:05:41

sergeek
Зарегистрирован: 2012-06-26
Сообщения: 470
Репутация: +  43  -
Профиль   Отправить e-mail  

Рубрика "Чудеса"

не там возвращается первое не True в boolean-контексте

Отредактировано sergeek (Ноя. 23, 2013 18:07:12)

Офлайн

#8 Ноя. 23, 2013 18:16:59

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Рубрика "Чудеса"

sergeek
не там возвращается первое не True в boolean-контексте

Я знаю, ты мне сам ссылку давал на ленивые вычисления. Просто не подумал что dict пустой, поторопился…



Офлайн

#9 Ноя. 23, 2013 18:29:57

sergeek
Зарегистрирован: 2012-06-26
Сообщения: 470
Репутация: +  43  -
Профиль   Отправить e-mail  

Рубрика "Чудеса"

я таким образом только or использую
например что-нибудь вроде

result = calc_by_method1() or calc_by_method2() or ...
симпатично получается
а and как то чужеродно выглядит для формирования логики

Офлайн

#10 Ноя. 23, 2013 19:47:53

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9873
Репутация: +  853  -
Профиль   Отправить e-mail  

Рубрика "Чудеса"

bw
А я сегодня для себя открыл, что:
bw
В оф. документации сказано об этом?
вообще, если pydoc откроешь, то это отчётливо видно в builtins
но также есть и в документации как во встроенной, так и в основной

class bool(int)
| bool(x) -> bool
|
| Returns True when the argument x is true, False otherwise.
| The builtins True and False are the only two instances of the class bool.
| The class bool is a subclass of the class int, and cannot be subclassed.
|
| Method resolution order:
| bool
| int
| object
|
| Methods defined here:

python.org. hierarchy
The Boolean type is a subtype of the integer type, and Boolean values behave like the values 0 and 1, respectively


sergeek
а and как то чужеродно выглядит для формирования логики
часто использую
s = match and match.group()



Отредактировано py.user.next (Ноя. 23, 2013 19:52:30)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version