Форум сайта python.su
Вот так, порой, небольшая ошибка может сломать голову кардинально
class Base(object): def dispatch(self, request, *args, **kwargs): if request.user.is_superuser: return super(Base, self).dispatch(request, *args, **kwargs) try: p = Plumbing.objects.all()[0].is_closed if p: self.template_name = "plumbing.html" except IndexError: pass return super(Base, self).dispatch(request, *args, **kwargs)
p = Plumbing.objects.all()[0].is_closed
p = Plumbing.objects.all()[0] if p:
p = Plumbing.objects.all()[0] print p if p: Условие выполняется
p = Plumbing.objects.all()[0] if p: А без принта не выполняется :)
Отредактировано FishHook (Ноя. 16, 2013 16:58:59)
Офлайн
Вот из последнего, к счастью обошлось без облысения:
for item in useful_container: #... if something in useful_container: """...""" #...
Отредактировано bw (Ноя. 16, 2013 17:38:11)
Офлайн
FishHookкакой метод ? там только обращение к атрибуту
я забыл вызвать метод, то есть было
Офлайн
py.user.next,
Да, Вы правы, я неверно выразился.
Офлайн
FishHookтак а в чём вещь-то ? как print влияет на p ?
И тогда наблюдаем удивительную вещь
Офлайн
py.user.next__str__ меняет атрибуты, ипользуемые __bool__'ом - очевидно же
так а в чём вещь-то ? как print влияет на p ?
Офлайн
sergeekэто ещё зачем ?
__str__ меняет атрибуты, ипользуемые __bool__'ом - очевидно же
Отредактировано py.user.next (Ноя. 18, 2013 20:24:46)
Офлайн
Зато есть __nonzero__, суть та же.
..bw
Офлайн
sergeekАд
__str__ меняет атрибуты, ипользуемые __bool__'ом - очевидно же
Офлайн
sergeekэто вряд ли, скорее в действии lazyness
__str__ меняет атрибуты, ипользуемые __bool__'ом - очевидно же
FishHookPlumbing.objects.all()[0]
Офлайн