2016-05-31 6 views
1

У меня есть функция Python:Как импортировать класс из модуля python (boost.python)?

def log(text): 
    print text 

сохраненную в Callbacks.py файле. Теперь я хочу импортировать его в C++-функцию и выполнить. Это прекрасно работает:

py_fun = import("Callbacks"); 
py_fun.attr("log")(text); 

Но я хотел бы сделать log функцию часть класса:

class Logger:  
    def __init__(self): 
     self.last_read = -1 

    def log(self, text): 
     print text 

Как я могу импортировать его в C++ и создания экземпляра Logger?

ответ

2

Именно так, как вы думаете:

py::object mod = py::import("Callbacks"); 
py::object logger = mod.attr("Logger")(); 
+0

Спасибо! Оно работает. Я знал, что чего-то не хватает. И мне не хватало круглых скобок. – Pawel