Напишите пустой или фиктивный класс на Python.Python

Программы на Python
Anonymous
Напишите пустой или фиктивный класс на Python.

Сообщение Anonymous »

Предположим, у меня есть такой код:

Код: Выделить всё

foo = fooFactory.create()
По разным причинам fooFactory.create() может не создать экземпляр Foo.

Если это так, я хочу, чтобы fooFactory.create() возвращал фиктивный/неактивный объект. Этот объект должен быть полностью инертным — независимо от того, как он используется, он не должен ничего делать или выдавать какие-либо исключения. Обратите внимание, что у foo нет методов, возвращающих значения.



Я рассмотрел следующие варианты.

Сначала создайте макет[/b]. Преимущество этого в том, что это легко и дает мне именно то, что я хочу. Обратной стороной является то, что использование макета в рабочем коде кажется странным. Что еще более важно, я не могу контролировать фиктивную библиотеку, поэтому ее поведение может в какой-то момент измениться и сломать мое приложение.
Во-вторых, создайте класс dummy
NoopFoo/ DummyFoo. Затем я вручную реализую методы, которые он должен поддерживать, и просто помещаю pass в тело метода. Плюс в том, что я знаю, что это никогда не нарушит мое приложение. Обратной стороной является то, что если в будущем будут использоваться другие методы Foo, мне нужно будет обновить NoopFoo/ DummyFoo... иначе мое приложение может сломаться.

Есть ли лучший вариант, чем любой из этих? Обратите внимание, что я новичок в Python, поэтому, если он включает в себя более продвинутые функции Python, я был бы признателен за дополнительную информацию. Спасибо!

Вернуться в «Python»