2016-05-31 19 views
1

Ich habe eine Python-Funktion:Wie importiere ich die Klasse aus dem Python-Modul (boost.python)?

def log(text): 
    print text 

in Callbacks.py-Datei gespeichert. Jetzt möchte ich es in die C++ Funktion importieren und ausführen. Dies funktioniert gut:

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

Aber ich möchte log Funktion Teil einer Klasse machen:

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

    def log(self, text): 
     print text 

Wie kann ich importieren es auf C++ und eine Instanz von Logger schaffen?

Antwort

2

Genau so, wie Sie denken würden:

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

Thank you! Es klappt. Ich wusste, dass ich etwas vermisste. Und mir fehlten Klammern. – Pawel