- 1
- 2
- 3
auto = False
if self.options.has_key('auto') and self.options['auto']:
auto = True
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−180
auto = False
if self.options.has_key('auto') and self.options['auto']:
auto = True
Lure Of Chaos 13.05.2011 23:34 # 0
frol 13.05.2011 23:38 # 0
ilblackdragon 14.05.2011 01:45 # +1
guest 13.05.2011 23:38 # −1
auto = self.options.get('auto') #ftw!
ilblackdragon 14.05.2011 01:44 # +4
Правильно: auto = self.option.get('auto', False).
gegMOPO4 14.05.2011 02:58 # +2
ilblackdragon 14.05.2011 03:01 # +1
In [3]: %timeit a.get('1', 4)
1000000 loops, best of 3: 568 ns per loop
In [4]: %timeit ('1' in a and a['1'])
1000000 loops, best of 3: 407 ns per loop
Можете объяснить почему? Или что-то почитать на эту тему?
gegMOPO4 14.05.2011 08:26 # +3
А вот defaultdict (для тех случаев, когда возможно), ещё быстрее — только одна операция.
Кстати, никогда не используйте has_key.
gegMOPO4 14.05.2011 08:53 # +2
И в этом случае уже может рассматриваться и вариант с try/except.
Если ключ обычно есть в словаре, то вариант с исключениями тоже оказывается быстрее get.
guest8 09.04.2019 10:37 # −999
guest8 09.04.2019 10:45 # −999
guest8 09.04.2019 17:54 # −999
guest8 09.04.2019 17:56 # −999