Python имеет эквивалент 'переключателю'?

Существуют некоторые экземпляры, где я оставлю предупреждения в коде, или где невозможно очистить их (хотя я действительно удаляю тех, я могу). Например:

  • , Если у Вас есть что-то, которое Вы продолжаете работать, и Вы знаете, что требуется больше работы/внимания, оставляя предупреждение на месте, чтобы указать, что это может быть соответствующее
  • при компиляции C++ со сбросом / существует несколько предупреждений о вещах, которые заставляют собственный код быть сгенерированным; это может быть громоздким для подавления всех этих предупреждений, когда кодовая база не может быть функционально изменена
  • Моющиеся предупреждения, когда Вы не понимаете то, что делает фиксация. Я сделал это пару раз с предупреждением Линта ПК и закончил тем, что представил ошибки. Если Вы не знаете то, что точный эффект изменения (например: броски C-стиля для устранения предупреждений) НЕ делайте этого. Выясните предупреждение или оставьте код в покое, мой совет.

Так или иначе, те - экземпляры первое, что пришло на ум, где отъезд предупреждений мог бы быть соответствующим.

25
задан That1Guy 19 July 2016 в 15:50
поделиться

2 ответа

No it doesn't. When it comes to the language itself, one of the core Python principles is to only have one way to do something. The switch is redundant to:

if x == 1:
    pass
elif x == 5:
    pass
elif x == 10:
    pass

(without the fall-through, of course).

The switch was originally introduced as a compiler optimization for C. Modern compilers no longer need these hints to optimize this sort of logic statement.

32
ответ дан 28 November 2019 в 21:06
поделиться

Try this instead:

def on_function(*args, **kwargs):
    # do something

def off_function(*args, **kwargs):
    # do something

function_dict = { '0' : off_function, '1' : on_function }

for ch in binary_string:
   function_dict[ch]()

Or you could use a list comprehension or generator expression if your functions return values:

result_list = [function_dict[ch]() for ch in binary_string]
11
ответ дан 28 November 2019 в 21:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: