У меня есть «интерфейс», который будет реализован клиентским кодом:
class Runner:
def run(self):
pass
run
обычно должен возвращать узел documenttils
, но поскольку дальний далеко самый
обычным случаем является простой текст, вызывающий позволяет запустить
, чтобы вернуть строку, которая будет
проверено с помощью type ()
и преобразовано в узел
.
Однако, как я понимаю "Pythonic", это не "Pythonic", потому что
проверка type ()
чего-либо не позволяет ему «быть» типом, «действуя» как
one - то есть "Pythonic" код должен использовать утиную типизацию.
Я рассматривал
def run_str(self):
pass
def run_node(self):
return make_node(self.run_str())
, но меня это не волнует, потому что он помещает не очень интересный возвращаемый тип прямо в названии; это отвлекает.
Есть какие-то идеи, которые я пропустил? Кроме того, есть ли проблемы, с которыми я могу столкнуться в будущем с моей "плохой" системой (мне она кажется более или менее безопасной)?