DAWorkbench 0.0.1
DAWorkbench API
载入中...
搜索中...
未找到
DA::DAPyObjectWrapper类 参考

这是针对pubind11::object的封装 更多...

#include <DAPyObjectWrapper.h>

类 DA::DAPyObjectWrapper 继承关系图:
DA::DAPyDType DA::DAPyDataFrame DA::DAPyIndex DA::DAPyModule DA::DAPySeries DA::DAPyModuleNumpy DA::DAPyModulePandas DA::DAPyScriptsDataFrame DA::DAPyScriptsDataProcess DA::DAPyScriptsIO DA::DAPyWorkBench

Public 类型

using ErrCallback = std::function< void(const char *) >
 异常错误回调函数
 

Public 成员函数

 DAPyObjectWrapper (const DAPyObjectWrapper &obj)
 
 DAPyObjectWrapper (DAPyObjectWrapper &&obj)
 
 DAPyObjectWrapper (const pybind11::object &obj)
 
 DAPyObjectWrapper (pybind11::object &&obj)
 
bool isNone () const
 
DAPyObjectWrapperoperator= (const DAPyObjectWrapper &obj)
 
DAPyObjectWrapperoperator= (DAPyObjectWrapper &&obj)
 
DAPyObjectWrapperoperator= (const pybind11::object &obj)
 
DAPyObjectWrapperoperator= (pybind11::object &&obj)
 
bool operator== (void *ptr) const
 
bool operator== (const pybind11::object &obj) const
 
bool operator== (const DAPyObjectWrapper &obj) const
 
bool operator!= (void *ptr) const
 
bool operator!= (const pybind11::object &obj) const
 
bool operator!= (const DAPyObjectWrapper &obj) const
 
 operator bool () const
 
void dealException (const std::exception &e) const
 统一的异常处理函数
 
DAPyObjectWrapper deepCopy () const
 深拷贝
 
pybind11::object & object ()
 
const pybind11::object & object () const
 
QVariant toVariant () const
 
bool isinstance (const pybind11::handle &type) const
 
bool isInt () const
 是否为int
 
bool isModule () const
 是否为Module
 
bool isFloat () const
 是否为float
 
bool isStr () const
 是否为str
 
bool isBool () const
 
bool isList () const
 
bool isDict () const
 
bool isTuple () const
 
bool isCallable () const
 
bool isSequence () const
 
bool isNumeric () const
 
void setErrCallback (const ErrCallback &fun)
 设置错误处理回调
 
ErrCallback getErrCallback () const
 
pybind11::object attr (const char *c_att)
 获取属性
 
pybind11::object attr (const char *c_att) const
 
template<typename... Args>
pybind11::object call (Args &&... args)
 直接调用Python可调用对象
 
QString __name__ () const
 对应__name__
 
QString __str__ () const
 
QString __repr__ () const
 
QString typeName () const
 
size_t refCount () const
 

Protected 属性

pybind11::object _object
 
ErrCallback _errcallback
 

详细描述

这是针对pubind11::object的封装

成员函数说明

◆ __name__()

QString DAPyObjectWrapper::__name__ ( ) const

对应__name__

返回

◆ attr()

pybind11::object DAPyObjectWrapper::attr ( const char *  c_att)

获取属性

参数
c_att
返回

◆ call()

template<typename... Args>
pybind11::object DA::DAPyObjectWrapper::call ( Args &&...  args)

直接调用Python可调用对象

此函数用于调用当前包装的Python可调用对象(如函数、方法、lambda等)。 如果对象不可调用,将抛出 std::runtime_error 异常。 如果Python调用过程中发生异常,将通过pybind11抛出 pybind11::error_already_set 异常。

模板参数
Args参数类型包,自动推导
参数
args调用参数,支持任意数量和类型的参数
返回
pybind11::object Python调用返回的对象
异常
std::runtime_error如果对象不可调用
pybind11::error_already_set如果Python调用过程中发生异常
注解
此函数不捕获任何异常,调用者需要自行处理可能的异常
// 示例1:调用无参数函数
DAPyObjectWrapper func = ...; // 获取Python函数
pybind11::object result = func.call();
// 示例2:调用带参数函数
DAPyObjectWrapper func = ...; // 获取Python函数
pybind11::object result = func.call(42, "hello", 3.14);
// 示例3:调用方法并处理异常
try {
DAPyObjectWrapper obj = ...; // 获取Python对象
pybind11::object result = obj.call(x, y);
// 处理结果...
} catch (const pybind11::error_already_set& e) {
qCritical() << "Python call failed:" << e.what();
} catch (const std::runtime_error& e) {
qCritical() << "Object is not callable:" << e.what();
}
这是针对pubind11::object的封装
Definition DAPyObjectWrapper.h:15
pybind11::object call(Args &&... args)
直接调用Python可调用对象
Definition DAPyObjectWrapper.h:149

◆ dealException()

void DAPyObjectWrapper::dealException ( const std::exception &  e) const

统一的异常处理函数

此函数会调用赋予的回调

参数
e

◆ deepCopy()

DAPyObjectWrapper DAPyObjectWrapper::deepCopy ( ) const

深拷贝

返回

◆ isFloat()

bool DAPyObjectWrapper::isFloat ( ) const

是否为float

返回

◆ isInt()

bool DAPyObjectWrapper::isInt ( ) const

是否为int

返回

◆ isModule()

bool DAPyObjectWrapper::isModule ( ) const

是否为Module

返回

◆ isStr()

bool DAPyObjectWrapper::isStr ( ) const

是否为str

返回

◆ setErrCallback()

void DAPyObjectWrapper::setErrCallback ( const ErrCallback fun)

设置错误处理回调

参数
fun

该类的文档由以下文件生成: