在python中扩展C ++ OO方法

时间:2015-05-12 07:56:45

标签: python c++

我需要一个文档/示例来扩展python中的C ++方法。我在论坛上浏览了python文档和一些现有问题,但没有得到确切的细节。

准确地说,如果我有类似的课程 C ++:

class Manager
{

Manager *instance;
std::list<User*> userList;
Manager();
public:
User* getUser(const char* name);
static Manager* getInstance(); 

}

class User
{

User();
public:
void doSomething();

}

在python中我期望做类似的事情:

m = getInstance()
u=m.getuser('x')
u.doSomething()

所以我想要一种编写python包装器方法的方法,它将在内部调用上面的方法。我能够以非面向对象的方式编写包装器方法。即:我能够写它,以便我可以调用独立的方法 比如getUser(&#39; x&#39;)和doSomething(),但不是基于对象的m.getUser(&#39; x&#39;)和u.doSomething()。

1 个答案:

答案 0 :(得分:1)

通过执行m = getInstance(),我想你想要一个对象实例。为您的类定义构造函数。还要添加self,以便它仅从特定对象调用方法

class Manager:

    def __init__(self, args):
        self.user_list = [] # list of User

    def get_user(self, user_name):
        return User('user_name') # search here instead


class User:

    def __init__(self, args):
        self.args = args

    def do_something(self):
        print("doing!")

m = Manager(1)
u = m.get_user('x')
u.do_something()