Каков канонический способ обработки различных типов в Python?

У меня есть функция, в которой мне нужно сгенерировать разные выходные строки для другой вызываемой мной программы, в зависимости от того, какой тип она хочет.

В основном вызываемая программа требуется аргумент командной строки, сообщающий, с каким типом он был вызван.

К счастью, я нашел этот ответ на SO о том, как проверить переменную на тип. Но я заметил, что люди также возражали, что проверка типов выдает «не объектно-ориентированный» дизайн. Итак, есть ли другой способ, предположительно более "объектно-ориентированный" способ справиться с этим без явной проверки типа?

Код, который у меня сейчас есть, выглядит примерно так:

def myfunc(val):
    cmd_type = 'i'
    if instance(val, str):
        cmd_type = 's'

    cmdline = 'magicprogram ' + cmd_type + ' ' + val
    Popen(cmdline, ... blah blah)
    ...

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

6
задан Community 23 May 2017 в 11:47
поделиться