PyInstanceClass::FactoryCreate

Contents

PyInstanceClass::FactoryCreate#

static inline PyInstanceClass YR::PyInstanceClass::FactoryCreate(const std::string &moduleName, const std::string &className)#

创建一个 PyInstanceClass 对象,该对象可以作为参数传递给 YR::Instance,以成功创建一个 Python 函数类实例。

int main(void)
{
    // class Instance:
    //     sum = 0
    //
    //     def __init__(self, init):
    //       self.sum = init
    //
    //     def add(self, a):
    //       self.sum += a
    //
    //     def get(self):
    //       return self.sum
    YR::Config conf;
    YR::Init(conf);

    auto pyInstance = YR::PyInstanceClass::FactoryCreate("pycallee", "Instance");  // moduleName, className
    auto r1 = YR::Instance(pyInstance).Invoke(x);
    r1.PyFunction<void>("add").Invoke(1);  // returnType, memberFunctionName

    auto r2 = r1.PyFunction<int>("get").Invoke();
    auto res = *YR::Get(r2);

    std::cout << "PlusOneWithPyClass with result=" << res << std::endl;
    return res;

    return 0;
}
参数:
  • moduleName - Python模块名称。

  • classname - Python类名称。

返回:

一个携带函数信息的 PyInstanceClass 对象,该对象可以作为参数传递给 YR::Instance