Понимаю, что python -- язык с динамической типизацией, но мне крайне любопытен вопрос о повышающем преобразовании объекта при передаче оного в какую-нибудь функцию. Как это реализовать в python? Хочется что-то вроде этого: http://pastebin.org/24610 (этот же код ниже). Т.е., что бы use_it() был доступен *только* интерфейс базового класса. Спасибо. #include <iostream> class Base { public: int data_; Base(): data_(100) {}; virtual void hello() { std::cout << "base::hello()" << std::endl; } void setData(int data) { data_ = data; } }; class Derived: public Base { public: Derived(): Base() {data_ = 500;}; virtual void hello() { hi(); } void hi() { std::cout << "derived::hi()" << std::endl;} }; void use_it(Base* b) { b->hello(); b->setData(6000); } int main(int argc, char** argv) { Derived* d = new Derived(); std::cout << "data = " << d->data_ << std::endl; use_it(dynamic_cast<Base *>(d)); std::cout << "data = " << d->data_ << std::endl; delete d; return 0; }