Да, вы можете сделать это; однако синтаксис для создания экземпляров объектов не является «новым классом (аргументами)». Просто бросьте «новый».
Сделав шаг назад, предположим, что у вас есть объект, хранящийся в переменной с именем foo. Компилятор никогда не будет жаловаться на то, что вы делаете следующее:
foo.bar
Это верно, даже если foo не может иметь панель свойств. Это связано с тем, что foo имеет атрибут с именем bar, определяется во время выполнения (вот почему Python является динамически типизированным языком). Если в вашем коде есть проблема с типом, вы можете не узнать об этом, пока не запустите его (т.е. время выполнения).
В Python интерфейсы устанавливаются исключительно по соглашению между разработчиками одного и того же проекта. Этот метод работы с интерфейсами известен как duck typing . Я предлагаю вам прочитать эту тему, так как кажется, что вы новичок в Python.
PS: Динамическая типизация может показаться плохой вещью, потому что вы не получаете проверку типов во время компиляции, но оборотная сторона этого в том, что вам нужно написать гораздо меньше. Теоретически, это делает вас гораздо более продуктивным. По моему опыту, это имеет тенденцию подтверждаться.