November 2019

S M T W T F S
      12
34 5 678 9
10111213141516
17181920212223
24252627282930

Style Credit

Expand Cut Tags

No cut tags
Thursday, June 25th, 2009 12:52 pm

Для тех, кто не в курсе: фамилия Рустема – Адагамов.

А Агдам – это дешёвое креплёное вино, названное в честь города в Карабахе :)

Оригинал этой записи в личном блоге.
Любые материалы из этого блога запрещается использовать на сайте livejournal.ru в любой форме и любом объёме.

Sunday, October 11th, 2009 11:41 am (UTC)
другой способ смотреть на вещи:
class View1:
  def __call__(this, request):
    # some code

view1 = View1()
# called as view1(request), same for view2, view3

# one way
class RequiresLogin1:
  def __call__(this, view, request):
    if somecheck:
      return something
    return view(request)

requeres_login = RequiresLogin1()
# called as requeres_login(view1, request)
# ... requeres_login(view2, request), requeres_login(view3, request)

# another way
class RequiresLogin2:
  def __init__(self, view):
    self.view = view
  def __call__(self, request):
    if somecheck:
      return something
    return self.view(request)

rview1 = RequiresLogin2(view1)
# called as rview1(request), same for view2, view3

т.е. весь накладной расход на второй вариант, это создание нескольких копеечных объектов, зато мы сохраняем полную совместимость по интерфейсу.