2016-07-08 3 views
0

Sagen wir, ich habe eine Klasse Foo:Zugang zu privaten Membervariablen/Funktionen einer C++ Klasse in Cython

class Foo { 
private: 
    std::string bar; 
public: 
    Foo() {} 
    Foo (const std::string& bar_) { this->bar = bar_; } 
    std::string get_bar() { return this->bar; } 
}; 

und Foo Python-Wrapper FooWrapper.pyx:

from libcpp.string cimport string 

cdef extern from "Foo.h": 
    cdef cppclass Foo: 
     Foo() 
     Foo (string) 

Ist es möglich, Zugriff std::string bar in der .pyx-Datei, ohne Foo zu ändern?

Antwort

1

Wenn Sie nicht auf ein privates Mitglied in C++ zugreifen können, können Sie auch nicht in Cython darauf zugreifen.

Sie könnten einen Trick wie diesen versuchen, der das Schlüsselwort "private" überschreibt: https://stackoverflow.com/a/424125