- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
def __call__(self, *args, **kw):
# ...
if args and len(args) > 1 and args[0] is args[1][0]:
# fml...
temp = list(args)
temp.pop(1)
args = tuple(temp)
return self._execute(*args, **kw)
Vindicar 06.10.2012 15:35 # 0
temp.pop(1)
args = tuple(temp)
args[1:], не? Не, вру... но args[0:1]+args[2:] сработает
А вот зачем понадобилось проверять что args[0] is args[1][0] для меня загадка.
На таком фоне условие args and len(args) > 1 это так, мелочи.
Хотя можно было сделать
def __call__(self, arg1, arg2, *args, **kw):
И никаких проверок не надо...
wvxvw 06.10.2012 15:42 # +1
Т.е. что делает это условие: отлавливает те ситуации, когда вышеописаная неведомая херня таки случилась, и убирает второй аргумент (т.как он и не нужен никогда, он случайно туда попал).
Vindicar 07.10.2012 14:24 # 0
wvxvw 07.10.2012 14:49 # 0